spring 是否支持为 groovy-baked beans 调用动态?
Does spring support invoke dynamic for groovy-backed beans?
是否可以配置使用 lang 命名空间声明的 Groovy beans 或手动使用 GroovyScriptFactory in这样,他们使用调用动态支持?
<lang:groovy id="messenger" script-source="classpath:Messenger.groovy">
我没有找到关于这个案例的任何可靠文档。
而且,GroovyClassLoader 是 groovy-all:indy maven artifact 提供的,还是只能与 groovy 编译器一起使用?
为了激活调用动态支持,您必须:
- 使用groovy-indy.jar
- 将系统 属性
groovy.target.indy
设置为 true 或 CompilerConfiguration.DEFAULT.getOptimizationOptions().put("indy", true)
这将为 groovy 编译器的所有调用启用此功能(并且 Spring 将使用此选项)。我不认为有一种方法可以通过 ScriptEngine
配置此选项,仅适用于一部分脚本。
如果您直接使用 GroovyClassLoader,您可以通过 CompilerConfiguration.optimizationOptions.indy
属性
提供此选项
是否可以配置使用 lang 命名空间声明的 Groovy beans 或手动使用 GroovyScriptFactory in这样,他们使用调用动态支持?
<lang:groovy id="messenger" script-source="classpath:Messenger.groovy">
我没有找到关于这个案例的任何可靠文档。
而且,GroovyClassLoader 是 groovy-all:indy maven artifact 提供的,还是只能与 groovy 编译器一起使用?
为了激活调用动态支持,您必须:
- 使用groovy-indy.jar
- 将系统 属性
groovy.target.indy
设置为 true 或CompilerConfiguration.DEFAULT.getOptimizationOptions().put("indy", true)
这将为 groovy 编译器的所有调用启用此功能(并且 Spring 将使用此选项)。我不认为有一种方法可以通过 ScriptEngine
配置此选项,仅适用于一部分脚本。
如果您直接使用 GroovyClassLoader,您可以通过 CompilerConfiguration.optimizationOptions.indy
属性