首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最佳实践?JNDI、Hibernate和Tomcat

最佳实践?JNDI、Hibernate和Tomcat
EN

Stack Overflow用户
提问于 2011-04-19 12:08:33
回答 1查看 2K关注 0票数 1

我有一个托管在tomcat上的web应用程序,它使用hibernate与数据库通信。

我正在研究如何在从dev迁移到test和prod的过程中减轻配置的痛苦。

我看到JNDI提到了很多东西,乍一看似乎是个好主意。您在每个tomcat实例上配置一个jndi资源,web上下文就会使用它。

然而,进一步研究之后,似乎为了拥有JNDI,我必须将所有数据库对象+ hibernate放在tomcat lib文件中,这样才能正常工作。这对我来说听起来很可怕,如果我想部署另一个使用不同版本hibernate的上下文怎么办?

而且,我不是仅仅用维护配置的痛苦来换取由于已安装的jndi资源类与我的上下文中的资源类不匹配而导致的破坏的痛苦吗?

理想情况下,我想我想要的是用tomcat来表达。有一个名为X的数据库,它位于此服务器上,并具有此用户/通行证。

我希望您能以最好的方式处理不同环境中的不同配置需求,而不必在每次部署后都有额外的步骤来更新配置文件。

干杯,彼得

EN

回答 1

Stack Overflow用户

发布于 2011-04-19 12:13:46

我相信你把事情搞糊涂了。

JNDI只是一个分配给数据源池的名称。此数据源使用JDBC驱动程序,该驱动程序位于全局Tomcat类路径中,但这是整个设置中唯一的共享资源。

Datasource定义了连接URL、用户名、密码和连接选项,每个服务器可能会有所不同,但应用程序并不关心它--它只知道JNDI名称,例如"jdbc/myDatasource“。

所有冬眠的罐子,以及任何其他罐子和不能打包的东西都要在战争中打包。它们仅在WAR中“可见”,因此您可以将使用冲突版本的库的多个应用程序部署到同一Tomcat。

不需要污染Tomcat的lib/目录。正如您正确地观察到的,这是一种糟糕的做法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5711488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档