aviatorscript icon indicating copy to clipboard operation
aviatorscript copied to clipboard

加强对 spring 容器的集成插件

Open killme2008 opened this issue 4 years ago • 4 comments

方便创建 AviatorEvaluatorInstance 和集成自定义函数等

killme2008 avatar Oct 21 '21 05:10 killme2008

我提前设置了类加载器: AviatorEvaluatorInstance aviatorEvaluator = AviatorEvaluator.getInstance(); aviatorEvaluator.addFunctionLoader(new SpringContextFunctionLoader(applicationContext)); 想要从加载我的某个service类的某个方法。如下: @Slf4j @Service public class CycleReportServiceImpl implements ICycleReportService { /** * 获取业务ID集合 * * @param aggregateParam * @return */ @Override public List<String> listBizIds(JSONObject aggregateParam) throws BizException { // TODO 待实现 return null; } }

我如何编辑表达式,调用listBizIds? 这样可以吗?正确的写法应该是怎样的? String expression = "cycleReportServiceImpl.listBizIds()"; JSONObject listBizParam = new JSONObject(); listBizParam.put("mainRecordRule",param); AviatorEvaluatorInstance aviatorEvaluator = AviatorEvaluator.getInstance(); aviatorEvaluator.addFunctionLoader(new SpringContextFunctionLoader(applicationContext)); aviatorEvaluator.execute(expression); List<String> bizIds = (List<String>) aviatorEvaluator.execute(expression, listBizParam);

gxp1317 avatar Oct 26 '21 13:10 gxp1317

@gxp1317 FunctionLoader,顾名思义,加载的是实现了 AviatorFunction 接口的自定义函数。 而如何调用普通类的 Java 方法,这是另一个问题,文档也描述了

https://www.yuque.com/boyan-avfmj/aviatorscript/xbdgg2#rjNeD

killme2008 avatar Oct 27 '21 05:10 killme2008

有考虑支持从spring容器里拿任意实例吗?

whatamazing avatar Nov 04 '21 13:11 whatamazing

这么调用spring的bean方法?

852675742 avatar Dec 01 '21 03:12 852675742