@(JAVA总结)
1. 场景描述
在网上查了资料发现,java有三种方式调用groovy脚本。但是真正在实际的服务器环境中,嵌入groovy脚本往往需要满足下面的条件:
可以直接调用groovy脚本中的方法
能传递对象到groovy方法中,不仅仅是字符串
提供脚本缓存机制,不用每次调用脚本的时候,都到磁盘读取
修改groovy后能实时生效
只有满足了上面的这些要求,才能安心的将其嵌入到现有的Java后台服务中。
下面就来具体探讨下具体实现的步骤。
2. 解决方案
其实,GroovyScriptEngine类就已经提供了上面所说的功能。
主要使用GroovyScriptEngine.loadScriptByName来读取脚本,loadScriptByName方法内部提供了缓存功能,在读取groovy脚本的时候,会优先从缓存中读取,如果缓存中没有的话,才去读取脚本,如下:
2.1 相关测试类和脚本
在后面的测试后,会用到下面的java类和groovy脚本。
2.1.1 测试类Person.java
该类用于测试传递Java对象到Groovy脚本中
public class Person {
public String name; public String address; public Integer age; public Pers