我有一个 bean B
,我必须自己创建(使用)并且new B()
它有注释。@Autowire
@PostConstruct
如何让 Spring 从我的 bean 处理这些注释A
?
相关问题:
我有一个 bean B
,我必须自己创建(使用)并且new B()
它有注释。@Autowire
@PostConstruct
如何让 Spring 从我的 bean 处理这些注释A
?
相关问题:
亚伦,我相信你的代码是正确的,但我使用了以下内容:
B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean( bean );
factory.initializeBean( bean, "bean" );
第一种方法将处理@Autowire
字段和方法(但不是经典属性)。第二种方法将调用后处理(@PostConstruct
以及任何定义BeanPostProcessor
的 s)。
ApplicationContextAware
如果实现接口,则可以在 bean 中获取应用程序上下文。
另一种选择是让 spring 容器自动创建一个新 bean(而不是使用 new 关键字自己创建一个新实例)。在需要以编程方式实例化 new 的类中,注入 AutowireCapableBeanFactory的实例:
@Autowired
private AutowireCapableBeanFactory beanFactory;
然后:
B yourBean = beanFactory.createBean(B.class);
容器将像往常一样注入带有 @Autowired 注释的实例。