【发布时间】:2015-02-20 19:42:02
【问题描述】:
我正在尝试将一个 spring bean 自动装配到一个 groovy 类中。 groovy 类本身不是由 Spring 容器实例化的,所以我使用 @Configurable 注释让 spring 自动装配 bean。当我使用 new 运算符创建一个 groovy 类(AcceptFilter)时,我可以看到 Spring 正在正确注入 bean,但是当我使用以下内容时:
GroovyClassLoader groovyCompiler = new GroovyClassLoader();
Class clazz = groovyCompiler.parseClass(new File("src/main/groovy/filters/pre/AcceptFilter.groovy"));
AcceptFilter filter = (AcceptFilter) clazz.newInstance();
AcceptFilter 类中注入的 bean 始终为 null。当 groovy 类在运行时编译和实例化时,AspectJ 似乎忽略了 @Configurable 注释。
【问题讨论】:
-
是否可以强制
AcceptFilter使用预定义的接口,以便您可以自己设置对实例化对象的依赖关系? -
我刚刚结束了,基本上我让 AcceptFilter 扩展了一个 Java 类,并在那里有我的依赖项@Autowired。我还必须声明 set @Configurable(preConstruction=true) 没有它我仍然看到 null
标签: java spring groovy spring-boot aspectj