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

Java 我可以将数据访问层作为JAR文件放在tomcat/shared lib目录中吗?,java,jakarta-ee,tomcat,Java,Jakarta Ee,Tomcat,我创建了一个数据访问层,负责使用普通SQL查询从数据库检索数据。我的tomcat包含两个web项目。两个项目都包含数据访问层的相同副本 网络项目1(WP1) |----数据访问层 网络项目2(WP2) |----数据访问层 我想将数据访问层和web项目分开,所以我不需要维护多个副本 WP1--WP2 || 数据访问层 将数据访问层设置为JAR文件并将其放入Tomcat共享lib文件夹中是最佳做法吗 谢谢, MFH < P>我不会说这样做是危险的,但我绝对不会认为这个解决方案是一个“最佳实践”:

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

网络项目1(WP1)
|----数据访问层

网络项目2(WP2)
|----数据访问层

我想将数据访问层和web项目分开,所以我不需要维护多个副本

WP1--WP2
||
数据访问层

将数据访问层设置为JAR文件并将其放入Tomcat共享lib文件夹中是最佳做法吗

谢谢,
MFH

< P>我不会说这样做是危险的,但我绝对不会认为这个解决方案是一个“最佳实践”:在所有Web应用程序中共享一个库将增加其中一个将遇到类路径冲突的可能性。 例如,假设您部署了另一个web应用程序,其中您正在(有意或无意地)使用一个重复的类(多个具有相同完全限定名的类),假设共享库是在特定于应用程序的库之前加载的,那么您最终可能会使用另一个超出预期的类。在最好的情况下,你会很容易地找到答案,但这仍然会让你失去一些时间。在最坏的情况下,您的应用程序将无法按预期运行

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


此外,在您的情况下,它不会造成维护混乱:只需从您的Web应用程序中调整部署过程,将相关的库作为依赖项添加(如果使用Maven或Ant等工具,这是小菜一碟)。我不会说这样做是危险的,但我绝对不会把这个解决方案看作是一个问题。“最佳实践”:在所有web应用程序中共享一个库将增加其中一个发生类路径冲突的可能性

例如,假设您部署了另一个web应用程序,在该应用程序中,您正在(有意或无意地)使用一个重复的类(几个具有完全相同的限定全名的类),假设共享库是在特定于应用程序的库之前加载的,那么最终可能会使用另一个类,而不是预期的类。在最好的情况下,您会很容易地找到它,但这会让您有一段时间无所适从。在最坏的情况下,您的应用程序不会按预期运行

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


此外,在您的情况下,它不会造成维护上的混乱:只需调整两个web应用程序的部署过程,将相关库添加为依赖项(如果您使用的是Maven或Ant等工具,这是小菜一碟)。

我当然会像您这样做。(重复)我当然会像你那样做。(重复)