我可以将数据访问层作为JAR文件放在tomcat / shared lib目录中吗?

时间:2012-04-02 19:58:45

标签: java java-ee tomcat

我创建了一个数据访问层,负责使用纯SQL查询从数据库中检索数据。我的tomcat包含两个Web项目。两个项目都包含相同的数据访问层副本。

Web Project1(WP1)
  | ---- DataAccess图层

Web Project2(WP2)
  | ---- DataAccess图层

我想将数据访问层与Web项目分开,因此我不需要维护多个副本。

WP1 - WP2
| |
DataAccess图层

将数据访问层作为JAR文件并将其放在Tomcat共享库文件夹中是最佳做法吗?

谢谢,   MFH

1 个答案:

答案 0 :(得分:0)

我不会说这样做是危险的,但我绝对不会将此解决方案视为“最佳实践”:在所有Web应用程序中共享库将增加其中一个进入类路径的可能性冲突。

例如,假设您部署了另一个Web应用程序,您正在使用(有意或无意)一个复制的类(具有相同的完全限定名称的几个类),因为共享库是在特定于应用程序的库,最终可能会使用另一个类而不是预期的类。在最好的情况下,你很容易弄明白,但这仍然会让你失去一些时间。在最糟糕的情况下,您的应用程序将无法按预期运行。

根据我的个人经验,我在过去看到过这种情况:一些应用程序指的是共享的lib-1.0.jar,另一些应用程序部署了特定于应用程序的lib-2.0.jar(稍有进化) )。

此外,在您的情况下,它不会导致维护严重:只需从您的两个Web应用程序调整部署过程,将相关库添加为依赖项(如果您使用的是Maven或Ant等工具,这是一块蛋糕。)