【问题标题】:Injecting Spring bean in a Groovy class在 Groovy 类中注入 Spring bean
【发布时间】: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


【解决方案1】:

我最终创建了一个基础 Java 类,在那里声明了我的所有依赖项,并让 Groovy 类扩展了它。我还必须更改 @Configurable 以使用 preConstruction = true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多