1

是否可以配置使用lang命名空间或手动使用GroovyScriptFactory声明的 Groovy bean ,使其使用调用动态支持?

<lang:groovy id="messenger" script-source="classpath:Messenger.groovy"> 

我没有找到任何关于此案的可靠文件。

而且,groovy-all:indy maven 工件提供的 GroovyClassLoader 是否使用此功能,还是只能与 groovy 编译器一起使用?

4

1 回答 1

3

为了激活调用动态支持,您必须:

  1. 使用 groovy-indy.jar
  2. 将系统属性设置groovy.target.indy为 true 或CompilerConfiguration.DEFAULT.getOptimizationOptions().put("indy", true)

这将为 groovy 编译器的所有调用启用此功能(Spring 将使用此选项)。我认为没有办法通过ScriptEngine, 仅针对脚本的子集来配置此选项。

如果直接使用 GroovyClassLoader,可以通过CompilerConfiguration.optimizationOptions.indy属性提供这个选项

于 2016-02-15T19:07:38.743 回答