enhancement #I62DT1 如果对上下文标注@ScriptBean,那么脚本和java中拿到的上下文并不是同一个上下文

This commit is contained in:
everywhere.z
2022-11-22 10:47:54 +08:00
parent a291888eab
commit 1d15421b3a
3 changed files with 7 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
package com.yomahub.liteflow.script.groovy;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.yomahub.liteflow.script.ScriptBeanManager;
@@ -16,6 +17,7 @@ import org.slf4j.LoggerFactory;
import javax.script.*;
import java.util.Map;
import java.util.function.Consumer;
/**
* Groovy脚本语言的执行器实现
@@ -86,7 +88,7 @@ public class GroovyScriptExecutor implements ScriptExecutor {
bindings.put("_meta", metaMap);
//放入用户自己定义的bean
bindings.putAll(ScriptBeanManager.getScriptBeanMap());
ScriptBeanManager.getScriptBeanMap().forEach(bindings::putIfAbsent);
return compiledScript.eval(bindings);
}catch (Exception e){

View File

@@ -87,7 +87,8 @@ public class JavaScriptExecutor implements ScriptExecutor {
bindings.put("_meta", metaMap);
//放入用户自己定义的bean
bindings.putAll(ScriptBeanManager.getScriptBeanMap());
//放入用户自己定义的bean
ScriptBeanManager.getScriptBeanMap().forEach(bindings::putIfAbsent);
return compiledScript.eval(bindings);
}catch (Exception e){

View File

@@ -91,7 +91,8 @@ public class QLExpressScriptExecutor implements ScriptExecutor {
context.putAll(metaMap);
//放入用户自己定义的bean
context.putAll(ScriptBeanManager.getScriptBeanMap());
//放入用户自己定义的bean
ScriptBeanManager.getScriptBeanMap().forEach(context::putIfAbsent);
return expressRunner.execute(instructionSet, context, errorList, true, false, null);
}catch (Exception e){