das*_*h27 8 java spring ejb java-ee spring-remoting
以下是这种情况:
我有一个业务层,即EJB项目.实际上,只创建了一个EJB.此EJB负责将服务类公开给调用EJB的其他层.我想在这一层介绍spring(使用DI功能).
我关心的是,在这个业务层中加载spring上下文的最佳方法是什么,这样一旦EJB被调用,Spring上下文就不会一次又一次地加载?
(在Web项目中,有一个优点是在contextLoaderListener中配置spring上下文,并且仅在应用程序启动时才加载一次)
我想过将spring包含在同一层中,因为:
请帮助我建议最好的方法,在EJB项目中加载spring上下文.我也想知道,如果有任何替代方案,如果我可以在应用服务器中加载相同的(我正在使用Web领域应用服务器).
感谢致敬,
Jitendriya Dash
Spring 应该按照您通常设置的常规方式配置为应用程序的一部分。然后您需要从 EJB 层访问 Spring beans。要访问(改编自这篇文章),请创建一个 Spring bean,如下所示:
@Component
public class SpringApplicationContext implements ApplicationContextAware {
private static ApplicationContext CONTEXT;
public void setApplicationContext(ApplicationContext context) throws BeansException {
CONTEXT = context;
}
public static Object getBean(String beanName) {
return CONTEXT.getBean(beanName);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,从旧应用程序调用有问题的 bean:
SomeService someService = (SomeService)SpringApplicationContext.getBean("someServiceImpl");
Run Code Online (Sandbox Code Playgroud)
Spring上下文初始化一次,你的EJB层就可以随意访问。
| 归档时间: |
|
| 查看次数: |
12307 次 |
| 最近记录: |