让一个 Tomcat 应用程序从另一个应用程序获取一个 bean
Have one Tomcat application get a bean from another one
目前我有一个 Spring 项目使用 Spring JPA 来处理数据对象和我的数据库。它的所有功能都可以通过调用单个外观 bean 来访问。我想基于这个数据模型制作一个 Web 应用程序,但我不想进一步扩展这个项目。相反,我想将我的持久层和服务层与实际的 Web 应用程序层分开。也就是说,我想将这个项目打包成一个“.war”文件并将其部署到我的 Tomcat 实例上。根据在 Tomcat 上工作的任何其他应用程序的要求,我想让这个其他应用程序从我的“.war”.
中注入外观 bean
我是 Tomcat 的新手,谷歌搜索对我帮助不大。所以这里是我对这个概念的问题和疑问:
- 这是做我想做的事情的正确方法吗?我的意思是我希望我当前的 Spring 应用程序提供的行为可以被在一台服务器上运行的不同 Web 应用程序访问和重用。这可能是一个常见的情况,我想知道这是否可以作为解决方案。
- 如果我在 XML 上下文或我的项目的注释上下文中有这个外观 bean,我怎样才能使这个 bean 在部署时对在同一 Tomcat 实例上工作的任何其他应用程序可见?我应该在我的 web 应用程序中写什么来让它们与这个 bean 连接?如果我希望这个 bean 是一个单例并且同步所有对其功能的调用,我应该通过我的 code/context 来完成,还是让 Tomcat 以某种方式为我处理这个?
提前致谢。
Web 应用程序(运行 在像 tomcat 这样的 servlet 容器中的东西)在设计上是相互隔离的。共享可能不是一个好主意。但是,要共享,您可以使用 JNDI。 tomcat 7 中描述了设置 JNDI here。您将需要一个自定义资源工厂。
您可能需要考虑 REST API 方法。你不能用 Spring 做 "cross application injection" 并且 JNDI 使用起来很麻烦。
目前我有一个 Spring 项目使用 Spring JPA 来处理数据对象和我的数据库。它的所有功能都可以通过调用单个外观 bean 来访问。我想基于这个数据模型制作一个 Web 应用程序,但我不想进一步扩展这个项目。相反,我想将我的持久层和服务层与实际的 Web 应用程序层分开。也就是说,我想将这个项目打包成一个“.war”文件并将其部署到我的 Tomcat 实例上。根据在 Tomcat 上工作的任何其他应用程序的要求,我想让这个其他应用程序从我的“.war”.
中注入外观 bean我是 Tomcat 的新手,谷歌搜索对我帮助不大。所以这里是我对这个概念的问题和疑问:
- 这是做我想做的事情的正确方法吗?我的意思是我希望我当前的 Spring 应用程序提供的行为可以被在一台服务器上运行的不同 Web 应用程序访问和重用。这可能是一个常见的情况,我想知道这是否可以作为解决方案。
- 如果我在 XML 上下文或我的项目的注释上下文中有这个外观 bean,我怎样才能使这个 bean 在部署时对在同一 Tomcat 实例上工作的任何其他应用程序可见?我应该在我的 web 应用程序中写什么来让它们与这个 bean 连接?如果我希望这个 bean 是一个单例并且同步所有对其功能的调用,我应该通过我的 code/context 来完成,还是让 Tomcat 以某种方式为我处理这个?
提前致谢。
Web 应用程序(运行 在像 tomcat 这样的 servlet 容器中的东西)在设计上是相互隔离的。共享可能不是一个好主意。但是,要共享,您可以使用 JNDI。 tomcat 7 中描述了设置 JNDI here。您将需要一个自定义资源工厂。
您可能需要考虑 REST API 方法。你不能用 Spring 做 "cross application injection" 并且 JNDI 使用起来很麻烦。