通常将范围为prototype的bean与@Autowired一起注入无法正常工作。但是在编写代码时,很容易意外注入原型。

有没有一种方法可以获取所有@Autowired字段和方法的列表,并将其与Spring AppContext进行匹配以进行检查?

最佳答案

一种方法可能是重写org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor(负责处理@ Autowired,@ Inject,@ Resource等),并执行在此重写的bean后处理器中提到的检查。但是,AutowiredAnnotationBeanPostProcessor已向很多通用的自定义命名空间(context:component-scancontext:annotation-config等)注册,因此这些自定义注释将必须替换为相应的bean变体,并且覆盖的后处理器也将注册为豆。

10-07 18:45