Explorar o código

新增 Groovy 脚本引擎类

hubin %!s(int64=2) %!d(string=hai) anos
pai
achega
7b9371a1df

+ 39 - 0
aizuda-core/src/main/java/com/aizuda/core/script/GroovyScriptEngine.java

@@ -0,0 +1,39 @@
+/*
+ * 爱组搭 http://aizuda.com 低代码组件化开发平台
+ * ------------------------------------------
+ * 受知识产权保护,请勿删除版权申明
+ */
+package com.aizuda.core.script;
+
+import javax.script.Bindings;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
+import java.util.Map;
+
+ /**
+ * 爱组搭 http://aizuda.com
+ * ----------------------------------------
+ * Groovy 执行脚本
+ *
+ * @author 青苗
+ * @since 2021-10-28
+ */
+public class GroovyScriptEngine {
+    private static ScriptEngine SCRIPT_ENGINE;
+
+    public static ScriptEngine getScriptEngine() {
+        if (null == SCRIPT_ENGINE) {
+            final ScriptEngineManager factory = new ScriptEngineManager();
+            SCRIPT_ENGINE = factory.getEngineByName("groovy");
+        }
+        return SCRIPT_ENGINE;
+    }
+
+    public static Object evaluate(String script, Map<String, Object> params) throws ScriptException {
+        Bindings bindings = getScriptEngine().createBindings();
+        bindings.putAll(params);
+        bindings.put("contextParams", params);
+        return SCRIPT_ENGINE.eval(script, bindings);
+    }
+}