在Tomcat(或其他服务器)中部署了两个WAR,foo1.war和foo2.war。
所有spring bean都是在foo1.war中定义的,但是可以在foo2.war中部署的servlet中获取这些spring bean吗?
我不能只使用WebApplicationContextUtils
来获取WebApplicationContext
,对吗?他们是不同的战争。
谢谢
答案 0 :(得分:0)
从技术上讲,如果您公开servlet上下文并调用WebApplicationContext
,那么可以获取其他应用的servletContext.getContext("/otherapp").getAttribute(..)
,但这很难看。
如果只是将公共定义移动到common.xml
并将其包含在两个项目中,则可以拥有相同bean定义的实例。
如果您需要在两个应用程序之间传递一些数据,请使用其他机制:Web服务(soap,rest),消息传递(jmx)。
答案 1 :(得分:0)
添加到@Bozho答案:当两个WAR部署在单个EAR中时,您还可以共享实例数据(例如单例)。您应该能够将appContexts公开为EAR提供的类中的静态可见字段,因此对两个WAR都可见。