2016-02-15 124 views
1

是否可以配置用lang命名空间声明的Groovy bean,或者以这种方式手动使用GroovyScriptFactory以便它们使用invoke动态支持?春季支持是否支持groovy支持的bean动态调整?

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

我还没有找到任何可靠的文件在这种情况下。

而且,groovy-all提供了一个GroovyClassLoader:indy maven artifact是否使用这个特性,或者它只能用于groovy编译器?

回答

3

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

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

这将为groovy编译器的所有调用启用此函数(并且Spring将使用此选项)。我认为没有办法通过ScriptEngine来配置此选项,仅用于一部分脚本。

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