Spring构造函数注入

时间:2015-01-24 22:18:36

标签: spring constructor-injection

是否可以手动构造对象并让Spring注入其他参数?

e.g。

 class A 
 @Autowired
 private SomeDao dao;
 A(String x, String y) {}

3 个答案:

答案 0 :(得分:1)

您的示例是使用字段注入,而不是构造函数注入。

最好的方法通常是使用JavaConfig。您的@Bean方法可以采用参数(Spring会自动装配),当您调用new时,可以将这些参数与其他选项结合使用。

答案 1 :(得分:0)

也许org.springframework.web.context.support.SpringBeanAutowiringSupport这是你想要的,尝试调用:

SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

答案 2 :(得分:0)

您可以使用AutowireCapableBeanFactory中的autowireBean。给定applicationContext,您可以调用getAutowireCapableBeanFactory()然后自动装配您的实例:

applicationContext.getAutowireCapableBeanFactory().autowireBean( new A("x", "y" ) );