Spring - 在不同的 Web 应用程序之间共享 Web 应用程序上下文

Mig*_*ing 5 java spring

我有一个多模块 Maven 项目。其中一个模块是一个包含一些 spring bean 的 util 层。我想在其他模块中共享相同的spring bean。

其他模块部署为不相关的Web 应用程序,因此理想情况下,我的 util beans 应该是单例,并且在所有 Web 应用程序中我只会对这些单例有一个引用。

我找到了一些用于共享 Spring Web 应用程序上下文的链接,但它们似乎在同一个 .ear 中工作,但就我而言,我有不同的 Web 应用程序。

有办法做到这一点吗?

Aar*_*lla 4

不容易。应用程序服务器为每个应用程序使用一个类加载器,这意味着ClassCastException即使您设法将引用从创建 bean 的应用程序传递到另一个应用程序,您也会得到 s 。

您需要在应用程序服务器启动时定义 bean。将 bean 的代码放入应用程序服务器的类路径中,并检查如何设置 JNDI 上下文的文档。JNDI 上下文允许您共享全局资源(例如数据库连接)。