java - 2 war 共享代码

标签 java jakarta-ee tomcat jar war

我需要创建 2 个部署在 tomcat 服务器上的 war 应用程序。 其中一个应用程序与另一个应用程序具有完全相同的逻辑和代码,但对 View 和 Controller 进行了更改。

然后 App1 和 App2 将具有相同的代码来访问数据,我不想重复代码。 我的想法是创建 2 个 WAR,这些 WAR 文件应该使用可以访问数据库的库或其他项目(我不知道)。

哪种解决方案的性能最好?

最佳答案

选项 1

如果您正在共享代码(这是一大段代码,上传 war 文件时会让您发疯),可以选择创建一个包含代码的 jar 并将 jar 文件添加到 tomcats 库文件夹,这是

${CATALINA_BASE}/lib/

请注意,这通常不是您想轻而易举地做的事情,因为该 jar 文件将可用于 tomcat 上的所有 war 文件,从而产生可能的命名空间问题。

选项 2

如果与应用程序服务器上的所有项目共享代码不是一个选项,您必须将 jar 文件添加到项目并将其添加到它的类路径中(如果您添加 jar,这会在 eclipse 中自动发生进入

${PROJECT_ROOT}/WebContent/WEB-INF/lib
).

在性能方面,这并没有什么区别,因为 tomcat 将加载类文件,这些文件不是很大。实例可能是,但部署类型并没有真正对实例产生影响。

关于java - 2 war 共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14683717/

相关文章:

java - JMF CaptureDeviceManager.getDeviceList

java - Full GC后socket实例还在继续增长吗?

java - Oracle 驱动程序内存泄漏 - Tomcat

java - 在java中存储PostgreSQL/PostGIS "geometry(MultiPolygon)"数据类型

java - tomcat中跨上下文请求转发导致java.lang.ClassCastException : org. glassfish.jersey.message.internal.TracingLogger

eclipse - 无法通过 Eclipse 运行 Tomcat

java - 为什么 GlobalAuthenticationConfigurerAdapter.init() 不可见?

java - 限制 JMS 目标实例

c# - Mondrian.war 在 mondrian-3.7 中丢失了吗?如何部署mondrian 3.7

java - 使用 JDBC 连接到 Athena 时找不到合适的驱动程序