我有一个执行 Groovy 脚本的 Spring Controlled Grovoy Script Executor 类。
像下面的东西
final ClassLoader parent = getClass().getClassLoader();
final GroovyClassLoader loader;
loader = AccessController.doPrivileged(new PrivilegedAction<GroovyClassLoader>() {
@Override
public GroovyClassLoader run() {
return new GroovyClassLoader(parent);
}
});
this.groovyClass = loader.parseClass(" def returnSomthing() { return SpringControlledBean.action('Hello World') } ");
final GroovyObject groovyObject = (GroovyObject) this.groovyClass.newInstance();
final Object[] args = { };
final Object result = groovyObject.invokeMethod("returnSomthing", args);
是否可以将SpringControlledBean注入脚本?通过自动装配,或者让 Spring 创建类,了解当脚本发生变化时需要重新创建类?
如果该类是类路径的一部分并使用 java 构建,则可以使用 Autowire,但是此脚本内容在运行时已过去,因此对于 spring 来说不是静态的。