繁体   English   中英

如何使用 Spring 手动自动装配 bean?

[英]How do I manually autowire a bean with Spring?

我有一个 bean B ,我必须自己创建它(使用new B() )并且它有@Autowire@PostConstruct注释。

我如何让 Spring 从我的 bean A处理这些注释?

相关问题:

Aaron,我相信您的代码是正确的,但我使用了以下内容:

B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean( bean );
factory.initializeBean( bean, "bean" );

第一个方法将处理@Autowire字段和方法(但不是经典属性)。 第二种方法将调用后处理( @PostConstruct和任何定义的BeanPostProcessor )。

如果 bean 实现了ApplicationContextAware接口,则可以在 bean 中获取应用程序上下文。

另一种选择是让 spring 容器自动创建一个新 bean(而不是使用 new 关键字自己创建一个新实例)。 在需要以编程方式实例化 new 的类中,注入AutowireCapableBeanFactory的实例:

@Autowired
private AutowireCapableBeanFactory beanFactory;

然后:

B yourBean = beanFactory.createBean(B.class);

容器将像往常一样注入用@Autowired 注释的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM