从代码/获取依赖项动态构建ApplicationContext

Ezz*_*red 5 java reflection spring

我正在开发一个非常大的企业应用程序,有几千个bean,类之间有一个很大的依赖图.我们使用Spring 3,使用@Autowired字段(在constuctor中自动装配).

我正在尝试为其中一个控制器创建一个集成测试,这个控制器有多个依赖项,每个控制器都有更多的依赖项等.由于项目不好,创建需要解析的类的xml定义是不可能的.结构和依赖图 - 因此我无法构建ApplicationContext ...

我想要做的是扫描类中的字段,如果它们是bean(组件,服务等),则从代码中将它们添加到ApplicationContext.

我可以在递归函数中遍历类'字段,我猜测,并将bean添加到appcontext,但我不知道如何...

我怎样才能做到这一点?这可行吗?

Ste*_*oll 0

除非我遗漏了什么,否则你就是在试图解决错误的问题。如果您的模块结构处于这种状态,尝试动态构建上下文不会对您有帮助,因为最终您将加载几乎整个应用程序。

我建议您为您的应用程序创建一个通用的“低级”堆栈:合理且由单独的模块明确标识的堆栈。完成后,开始为主要功能创建边界并尝试仅加载它们。

如果您做不到这一点,您仍然可以通过使用模拟来减少图形中的依赖关系来加载测试应用程序上下文。无论如何,沿途发现可布线的区域不会给你带来任何好处。