【问题标题】:2 wars sharing code2战争共享代码
【发布时间】:2013-02-04 09:23:57
【问题描述】:

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

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

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

【问题讨论】:

  • 投了赞成票,我不太理解投反对票,当我是网络技术的初学者时,我也有点困惑。

标签: java jakarta-ee tomcat jar war


【解决方案1】:

选项 1

如果您正在共享代码(而且它是一大段代码,在上传战争文件时会让您发疯),可以选择创建一个包含代码的 jar 并将该 jar 文件添加到 tomcats library-folder ,即

${CATALINA_BASE}/lib/

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

选项 2

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

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

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

【讨论】:

    【解决方案2】:

    如果您想对两个项目使用相同的类,只需创建一个包含这些类的.jar 文件。然后将 .jar 添加到您的 Web 项目的类路径中并在两者中使用它。

    【讨论】:

      【解决方案3】:

      你可以把共同的部分提取出来,做成一个罐子。然后两次大战都用这个jar作为库。

      如果您使用 maven 来构建您的战争,那么构建项目层次结构会更容易。

      类似:

      parent
       |_common(jar)
       |_war1
       |_war2 
      

      【讨论】:

      • 有任何链接或提示吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      相关资源
      最近更新 更多