使用@Autowired
注入(inject)范围prototype
的bean通常无法按预期工作。但在编写代码时,很容易意外注入(inject)原型(prototype)。
有没有办法获取所有@Autowired
字段和方法的列表,并将其与Spring AppContext相匹配来检查这一点?
最佳答案
一种方法可能是覆盖org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
(负责处理@Autowired,@Inject,@Resource等)并执行您所拥有的检查在这个重写的bean后处理器中提到。然而,AutowiredAnnotationBeanPostProcessor 注册了很多常见的自定义命名空间(context:component-scan
、context:annotation-config
等),因此这些自定义注释必须被替换为相应的 bean
变体,并且覆盖的后处理器也注册为 bean。
关于java - 有没有办法获取通过@Autowired注入(inject)的具有范围原型(prototype)的所有bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317675/