|
@@ -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);
|
|
|
+ }
|
|
|
+}
|