EJB / MDB应用程序中的DI

时间:2011-04-21 01:12:16

标签: java dependency-injection websphere-7 message-driven-bean

我目前正在开发一个在IBM Websphere Application Server 7(Java EE 5)上运行的小型EJB应用程序。该应用程序主要由一个MDB监听传入的MQ消息,这些消息被转换并存储在DB中。目前我正在使用很多Singleton / Factories来共享配置,映射,数据源查找等。但这实际上会导致一些非常难以测试的代码。解决方案可能是使用(简单的)DI框架(如guice / spring)来注入不同的实例。问题是:在哪里放置初始化/设置代码?申请的主要入口点在哪里?如何将实例注入MDB?

2 个答案:

答案 0 :(得分:2)

可能值得考虑退出使用Guice,并尝试使用Java EE 5已有的注入机制。

关于找到合适的“启动点”,遗憾的是EJB规范没有定义一种可以在启动时运行bean的方法。但是,EE规范的Web配置文件确实有一个 - 您可以向应用程序添加WAR,并设置servlet侦听器组件:

http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletContextListener.html

您可以将此设置为在容器(WebSphere)加载和启动应用程序时启动。但请注意类加载器问题。

答案 1 :(得分:1)