通过依赖注入访问Spring bean*而不是*

Mar*_*eon 6 java spring dependency-injection

我们有一些在运行时创建的域对象 - 而不是Spring.这些域对象需要访问由Spring管理的某些服务类型bean.如何在运行时创建的域对象动态访问Spring bean(而不是通过DI)?

ska*_*man 8

@ duffymo的答案是这个问题最常见的解决方案,也是你应该遵循的问题.

但是,如果您感觉很好,并且如果您的情况支持它,那么您可以考虑使用Spring的AspectJ支持来使用spring bean自动装配非Spring管理的域对象:

[...]包含一个注释驱动的方面,利用此功能允许依赖注入任何对象.该支持旨在用于在任何容器控制之外创建的对象.域对象通常属于此类别,因为它们通常使用new运算符以编程方式创建,或者由于数据库查询而由ORM工具创建.

它正在接近伏都教,这个东西,它只适用于某些appservers,但它可能是你的工具.


duf*_*ymo 7

您必须向他们提供对ApplicationContext或BeanFactory的引用,以便他们可以获得Spring管理的bean.