我即将在Tomcat 5.5.x服务器上使用MySQL和Hibernate。
我是否将mysql-connector-java-[version]-bin.jar
放入$CATALINA_HOME/common/lib/
中,还是可以将WEB-INF/lib
放入我的WAR文件中与其他库依赖项?
在WEB-INF/lib
的WAR中使用它会更容易,因为我可以通过这种方式使用Maven存储库。有没有大的缺点,而不是在Tomcat的公共库目录中?
答案 0 :(得分:5)
如果你的jar是共同的,那么它将在tomcat中全局加载。每个webapp都能看到它。如果您将它放在您的webapp中,只有您的webapp才能看到它。我假设Boris所指的是,如果你的全局tomcat配置的某些部分加载了需要mysql连接的东西(比如连接池),那么它将需要jdbc驱动程序,所以它需要共同的。否则,没有。
我相信你可以在tomcat配置中设置一个安全配置,将配置存储在db中。如果你使用它,它将需要一个驱动程序。
为什么你想要webapp / WEB-INF / lib中的东西?好吧,因为它是模块化的,它是你的webapp的一部分,如果你将webapp移动到其他地方,它不需要额外的部分,这是tomcat安装的一部分。如果您可以将webapp直接放入库存tomcat安装中,则维护会更容易。另一个原因 - 如果你有多个webapps,他们都会使用共同的jar,这可能会导致库冲突和版本问题。
一般情况下,尽可能少见一点。即使您只有一个应用程序。