day20201112 - java 中使用脚本语言
有一些易变的,不确定的业务逻辑,与其一遍遍的重写,可以考虑把那些逻辑的计算,写到脚本语言里面。
@GetMapping("/test") public Object test() throws Exception { TBusOrderTwo or = new TBusOrderTwo(); or.setId(1); or.setPhone("12333334444");
Bindings param = new SimpleBindings(); param.put("a", 22222); param.put("b", JSON.toJSON(or).toString()); param.put("c", or);
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine javascript = manager.getEngineByExtension("js"); Object eval = javascript.eval(new FileReader(new File("C:/Users/XG002/Desktop/a.js")), param); System.out.println(eval); return eval; }
js脚本:
(function (a, b, c) { print("---------------------"); print("c= " + c); print("c.id = " + c.id); print("c.getId()= " + c.getId()); print("---------------------"); return 1.5 + 2.51 + 0.0011; })(a, b, c);
只需要修改js逻辑,就用重新修改java代码,就可以做到对业务逻辑的适应。