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 编译器一起使用?

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

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

这将为 groovy 编译器的所有调用启用此功能(并且 Spring 将使用此选项)。我不认为有一种方法可以通过 ScriptEngine 配置此选项,仅适用于一部分脚本。

如果您直接使用 GroovyClassLoader,您可以通过 CompilerConfiguration.optimizationOptions.indy 属性

提供此选项