以下是情况:
我有一个业务层,即一个 EJB 项目。实际上,只创建了一个 EJB。此 EJB 负责将服务类公开给调用 EJB 的其他层。我想在这一层引入spring(使用DI特性)。
我担心的是,在这个业务层中加载 spring 上下文的最佳方法是什么,以便在调用 EJB 时不会一次又一次地加载 spring 上下文?
(在 Web 项目中,在 contextLoaderListener 中配置 spring 上下文是有好处的,它只在应用程序启动时加载一次)
我曾考虑在同一层中包含弹簧,因为:
- 配置所有 DAO 和服务类的依赖关系,并在必要时注入它们。
- 在业务层使用spring对hibernate的支持。
- 通过将属性注入到类中并对其进行模拟,易于单元测试。不需要一次又一次地运行其他层来测试我的业务类/方法。
- 能够使用 AOP(面向方面的编程)进行日志记录和方法级别的审计。
请帮我建议最好的方法,在 EJB 项目中加载 spring 上下文。我也想知道,如果我可以在应用程序服务器中加载相同的内容(我正在使用 Web sphere 应用程序服务器),是否还有其他选择。
谢谢并恭祝安康,
Jitendriya Dash