通常将范围为prototype
的bean与@Autowired
一起注入无法正常工作。但是在编写代码时,很容易意外注入原型。
有没有一种方法可以获取所有@Autowired
字段和方法的列表,并将其与Spring AppContext进行匹配以进行检查?
最佳答案
一种方法可能是重写org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
(负责处理@ Autowired,@ Inject,@ Resource等),并执行在此重写的bean后处理器中提到的检查。但是,AutowiredAnnotationBeanPostProcessor已向很多通用的自定义命名空间(context:component-scan
,context:annotation-config
等)注册,因此这些自定义注释将必须替换为相应的bean
变体,并且覆盖的后处理器也将注册为豆。