我正在寻找一种方法来列出在运行时注入到特定Spring bean中的bean。例如,给定以下两个类:
@Controller
public class TestController {
@Autowired
private TestComponent testComponent;
private final TestService testService;
public TestController(TestService testService) {
this.testService = testService;
}
}
以及
@Service
public class TestService {
}
以及
@Component
public class TestComponent {
}
TestController
类的bean列表应返回:
TestService
(通过构造函数注入)TestComponent
(通过@Autowired
注解注入)
是否有现成的Spring助手/实用程序可以为我返回这些信息?
1条答案
按热度按时间fhg3lkii1#
您可以使用方法
getDependenciesForBean()
从ConfigurableBeanFactory
查询依赖bean的名称以获得给定的bean名称。这里的问题是你只处理bean的 names,所以为了使代码对给定的bean示例通用,你必须找出bean的名称(可能不是唯一的),而且当你为这些名称获取实际注入的bean时,你可能没有得到相同的示例(因为bean定义上的
@Scope(SCOPE_PROTOTYPE)
)。