EJB / MDB应用程序中的DI

| 我目前正在开发在IBM Websphere Application Server 7(Java EE 5)上运行的小型EJB应用程序。该应用程序主要由一个MDB组成,它侦听传入的MQ消息,这些消息已转换并存储在DB中。当前,我正在使用大量的Singleton / Factories来共享配置,映射,数据源查找等。但这实际上导致一些非常难以测试的代码。解决方案可能是使用(简单的)DI框架(例如guice / spring)来注入不同的实例。问题是:初始化/设置代码放在哪里?该应用程序的主要入口在哪里?如何将实例注入MDB?     
已邀请:
使用Spring,您可以通过EJB3拦截器进行操作,请参见http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ejb.html#ejb-implementation-ejb3 有关警告的有用信息位于javadoc中,请确保您已阅读:http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/ejb/interceptor/SpringBeanAutowiringInterceptor.html     
可能值得考虑退出使用Guice,并尝试使用Java EE 5中已经可用的注入机制。 关于找到合适的“启动点”,不幸的是,EJB规范没有定义启动Bean的方式。但是,EE规范的Web配置文件确实有一个-您可以在应用程序中添加WAR,并设置Servlet侦听器组件: http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletContextListener.html 您可以将其设置为在容器(WebSphere)加载和启动应用程序时启动。不过要注意类加载器的问题。     

要回复问题请先登录注册