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