使用prototype
注入带有@Autowired
的bean通常不会按预期工作。但是在编写代码时,很容易意外地注入原型。
有没有办法获取所有@Autowired
字段和方法的列表,并将其与Spring AppContext进行匹配来检查?
答案 0 :(得分:1)
一种方法可能是覆盖org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
(负责处理@Autowired,@ Inject,@ Resource等)并执行您在此重写的bean后处理器中提到的检查。但是,AutowiredAnnotationBeanPostProcessor在很多常见的自定义命名空间(context:component-scan
,context:annotation-config
等)中注册,因此这些自定义注释必须替换为相应的bean
变体并被覆盖后处理器也注册为bean。