让一个Tomcat应用程序从另一个bean获取bean

时间:2016-01-10 19:32:37

标签: java spring spring-mvc tomcat spring-data-jpa

目前我有一个Spring项目,它使用Spring JPA来处理数据对象和我的数据库。可以通过调用单个Facade bean来访问它的所有功能。我想基于这个数据模型制作一个Web应用程序,但我不想进一步扩展这个项目。相反,我想将我的持久性和服务层与实际的Web应用程序层分开。也就是说,我想把这个项目打包成一个" .war"文件并将其部署在我的Tomcat实例上。根据处理Tomcat的任何其他应用程序的需求,我希望将此其他应用程序注入我的" .war"中的facade bean。

我对Tomcat来说有点新鲜,谷歌搜索并没有给我带来太多帮助。所以这里有我对这个概念的问题和疑问:

  • 这是做我想要的正确方法吗?我的意思是我希望我当前的Spring应用程序提供的行为可以被在一台服务器上工作的不同Web应用程序访问和重用。这可能是一种常见的情况,我想知道这是否可以解决。
  • 如果我在XML上下文或项目的注释上下文中有这个外观bean,那么在部署时如何使这个bean对同一个Tomcat实例上工作的任何其他应用程序可见?我应该在我的Web应用程序中编写什么来将它们与这个bean连接起来?如果我希望这个bean成为一个单独的并且所有调用它的功能都是同步的,我应该通过我的代码/上下文执行此操作,还是我可以让Tomcat以某种方式为我处理这个?

提前致谢。

2 个答案:

答案 0 :(得分:1)

Webapps(在像tomcat这样的servlet容器中运行的东西)在设计上彼此隔离。分享可能是一个坏主意。但是,要共享,您可以使用JNDI。在tomcat 7中设置JNDI被描述为here。您将需要一个自定义资源工厂。

答案 1 :(得分:1)

您可能需要考虑REST API方法。你不能做"交叉应用注入"使用Spring和JNDI可能很麻烦。