Spring配置类中是否可以构造函数注入?

时间:2016-03-07 13:31:28

标签: spring constructor configuration constructor-injection

如果我有一个Spring配置类(即用@Configuration注释的类),我可以使用构造函数注入吗?

如果我添加一个,我会得到一个没有默认构造函数的消息,如果我添加一个默认构造函数,它会使用它而不是重载的那个,这对它没有帮助。

2 个答案:

答案 0 :(得分:3)

关于此限制有一个bug report。它将在Spring 4.3中修复。

请注意,使用这个非常新的功能并在@Configuration类的构造函数中注入泛型时,another bug report今天尚未修复在4.3-RC1中修复)报告了一个问题。 / p>

答案 1 :(得分:1)

在Spring 4.3中,您可以在@Configuration带注释的类构造函数中使用org.springframework.beans.factory.ObjectProvider来注入bean。例如:

@Configuration
public class SimpleBean {
  private final InnerBean prop1;
  public Simple Bean(ObjectProvider<InnerBean> innerBeanProvider) {
     prop1 = innerBeanProvider.getObject();
  }      
}