2场战争共享代码

时间:2013-02-04 09:23:57

标签: java java-ee tomcat jar war

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

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

哪种解决方案最适合性能?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

选项1

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

${CATALINA_BASE}/lib/

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

选项2

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

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

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

答案 2 :(得分:1)

您可以提取公共部分,并将其作为jar。然后两场战争使用这个jar作为库。

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

类似的东西:

parent
 |_common(jar)
 |_war1
 |_war2