Вызывает ли поддержка spring динамическую поддержку bean-компонентов с поддержкой groovy?

Можно ли настроить компоненты Groovy, объявленные с помощью пространства имен lang или вручную с помощью GroovyScriptFactory, таким образом, чтобы они использовали динамическую поддержку вызова?

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

Достоверной документации по этому делу я не нашел.

И использует ли GroovyClassLoader, поставляемый с артефактом groovy-all:indy maven, эту функцию, или ее можно использовать только с компилятором groovy?


person Anton    schedule 15.02.2016    source источник


Ответы (1)


Чтобы активировать динамическую поддержку вызова, вам необходимо:

  1. Используйте groovy-indy.jar
  2. Установите системное свойство groovy.target.indy в значение true или CompilerConfiguration.DEFAULT.getOptimizationOptions().put("indy", true)

Это включит эту функцию для всех вызовов компилятора groovy (и Spring будет использовать эту опцию). Я не думаю, что есть способ настроить эту опцию через ScriptEngine только для подмножества скриптов.

Если вы используете непосредственно GroovyClassLoader, вы можете предоставить эту опцию через свойство CompilerConfiguration.optimizationOptions.indy

person Jérémie B    schedule 15.02.2016