我一直在探索在 java 应用程序中动态运行 groovy 脚本的方法。
我经历过的方法如下: 1. Groovy Shell
binding.setVariable("x", 5);
String script = "y = x * x"
GroovyShell gs = new GroovyShell();
Script script = gs.parse(script);
script.run();
- 使用 GroovyClassLoader。
我有两个 java 应用程序。其中之一是 GUI 的后端,它在执行数据时存储数据。两者之间没有共同的缓存。为了避免每次编译的开销,我正在考虑先在应用程序B中编译应用程序,然后缓存它(这样也避免了内存泄漏)。另外,我尝试存储最初编译脚本生成的类文件,然后以字节的形式将其存储在数据库中,但到目前为止还没有成功。
但是,我不确定这是否是一种优化,或者 Groovy Shell/Groovy 类加载器是否已经缓存了生成的类文件。最好的方法应该是什么?
此外,预计脚本并不简单,那么在 Groovy Shell 或 Groovy 类加载器中哪种机制会更好?(另外,探索 GrooyScriptEngine,但似乎简单脚本不需要它)。