2016-02-15 171 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屬性提供此選項