如何使用Spring手动自动装入bean?
问题描述:
我有一个bean B
,我必须自己创建(使用new B()
),并且其中有@Autowire
和和@PostConstruct
注释。如何使用Spring手动自动装入bean?
如何让Spring从我的bean A
中处理这些注释?
相关问题:
答
阿龙,我相信,你的代码是正确的,但我用下面的:
B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean(bean);
factory.initializeBean(bean, "bean");
第一种方法将处理@Autowire
领域,方法(但不是经典属性)。第二种方法将调用后处理(@PostConstruct
和任何定义的BeanPostProcessor
)。
应用程序上下文可以在bean中实现,如果它实现了接口。
也许我的代码是错误的。 'processInjection()'只会填充@ @ Autowired'字段,而你的代码也应该处理'@ PostConstruct'(至少根据JavaDoc)。 : -/ – 2012-08-15 07:57:37
它是否也创建了一个动态代理,如果该类已用'@Transactional'注释进行了注释,例如? – jeromerg 2016-11-12 14:02:10