为什么使用JNDI上下文如果它不可逆转地将您与Tomcat联系起来?

时间:2015-01-08 17:57:26

标签: java tomcat tomcat7 jndi

每个人似乎都说你应该使用Tomcat的JNDI上下文来管理你的JDBC连接和驱动程序等等。阅读完文档后,我理解了平局。但是如果您使用它,您的应用程序必须从现在开始使用Tomcat容器直到时间结束。将应用程序依赖于这样的环境配置(尤其是 for Java,这应该是"一次写入,随处运行")不是一种糟糕的编程习惯。 ?这怎么不是一个危险的发展决定?

2 个答案:

答案 0 :(得分:3)

  

让您的应用程序依赖是不是一种糟糕的编程习惯   这样的环境配置(特别是对于Java,它是   应该是“一次编写,随处运行”)?

是的,总的来说。但是,此设计提供了多种好处,包括托管连接池和从应用程序中抽象数据库连接配置。 JNDI itself是一个目录服务抽象,可以保护您免受目录API差异的影响。

  

这不是一个危险的发展决定吗?

使用JNDI管理JDBC连接并非特定于Tomcat。每个Java应用程序服务器(GlassFish,Oracle,WebSphere等)都这样做。所以你不是要把自己绑在Tomcat上,而只是为了Java。

另请参阅:Using JNDI for Database connections

答案 1 :(得分:2)

我不知道您阅读了哪些文档,但是如果您使用JNDI,那么您在应用程序中指定的唯一内容就是您要使用的资源的JNDI名称(例如,用于数据库连接)。其他所有内容都在容器中配置,而不是应用程序的一部分(如数据库的URL,用户名,密码等)。