1
1
首先,你应该清楚你分享的是什么。您应该区分服务和库。 库允许您共享公共功能,例如,当您使用log4j库时,这就是您所实现的功能。在这种情况下,在使用log4j的每个项目中设置log4j。 另一方面,您可以拥有具有自己日志配置的集中式日志记录服务,并允许您在单个位置管理它。在这种情况下,您需要共享服务。 你可以通过把罐子放在每一场战争或耳朵里来共享图书馆。 您可以通过成为服务客户机来共享服务。因此,您的Web服务可以使用其他服务。在这种情况下,一个Web服务是另一个服务的客户机,实现服务组合(企业开发中的一种常见模式) 如果服务客户机和服务本身都位于同一个EAR中,那么您可以通过直接调用服务___来避免一些开销,例如,使用Spring__的父上下文功能: http://springtips.blogspot.com/2007/06/using-shared-parent-application-context.html 但我建议不要将服务扁平化,因为您将失去最初提供服务的不同好处,如治理、可管理性等。 |
2
1
因为你的编辑似乎暗示了战争之间并不需要通信,但两者都需要访问相同的共享资源。最简单的解决方案是将此资源的JAR放到EAR中,并将这些JAR的依赖项添加到两个Web项目中,以便它们使用共享资源。 如果两个Web项目中都有状态代码需要更新,那么您唯一的选择就是调用Web项目的servlet(假设状态代码包含在Web项目中)。 请记住,共享资源必须是线程安全的。 类似的问题 here . |
3
0
为什么不把公共类放在一个jar中直接使用它们呢?或者稍微重一点让普通类会话bean? |
4
0
我想到两件事
如果您只需要共享方法,3就是您想要的。但是您的编辑点告诉我您已经有了对共享数据进行操作的共享功能。例如,您已经获得了wars访问和更新的用户记录。如果是这样,您需要一个EJB。 |
Yonnatan Bar · 将JAR从TFS部署到linux 6 年前 |
yrv16 · 部署项目和编译资产的正确方法 6 年前 |
a7emenov · 通过Jenkins在远程服务器上部署jar 6 年前 |