java - 有没有办法获取通过@Autowired注入(inject)的具有范围原型(prototype)的所有bean?

标签 java spring autowired prototype-scope

使用@Autowired注入(inject)范围prototype的bean通常无法按预期工作。但在编写代码时,很容易意外注入(inject)原型(prototype)。

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

最佳答案

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

关于java - 有没有办法获取通过@Autowired注入(inject)的具有范围原型(prototype)的所有bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317675/

相关文章:

java - Spring 4.3.3 已弃用 OracleLobHandler 类型

java - 如何通过实现自动连接接口(interface)

Java图像绘制问题

java - Postgresql JDBC 表值参数

java - 如何使用 Retrofit 传递动态 JSON 文件名

java - 如何使用 Spring @Autowire 设置 TaskScheduler 以变量 n 秒运行方法?

java - Spring Autowiring 仅适用于接口(interface)

java - jackson :JsonIdentityInfo 序列化只有一个 child 的深度

java - JobRunr 与 Spring Boot - ConverterNotFound 异常

java - Spring Data Mongo 返回列表而不是字符串