有没有办法让所有带有通过@Autowired注入的范围原型的bean?

时间:2012-09-07 11:59:56

标签: java spring autowired prototype-scope

使用prototype注入带有@Autowired的bean通常不会按预期工作。但是在编写代码时,很容易意外地注入原型。

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

1 个答案:

答案 0 :(得分:1)

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