“javax.naming.Context”通常用于Java EE开发中。通过使用context.xml中的给定资源名称调用其查找函数,使用它来建立动态数据库连接非常方便。示例代码如下所示,其中“db_name”是您用于标识数据库资源的名称。
Context ctx = new InitialContext();
DataSource ds = ctx.lookup("java:comp/env/jdbc/db_name");
我担心的是,通过使用相同的上下文和使用不同的上下文查找资源,查找资源之间的区别是什么。哪种方法更有意义或更合适?假设所有数据库资源都在同一context.xml文件中定义。例如:
Context ctx = new InitialContext();
DataSource ds1 = ctx.lookup("java:comp/env/jdbc/db_name_ds1");
DataSource ds2 = ctx.lookup("java:comp/env/jdbc/db_name_ds2");
和
Context ctx_ds1 = new InitialContext();
Context ctx_ds2 = new InitialContext();
DataSource ds1 = ctx_ds1.lookup("java:comp/env/jdbc/db_name_ds1");
DataSource ds2 = ctx_ds2.lookup("java:comp/env/jdbc/db_name_ds2");
感谢您的分享。
答案 0 :(得分:0)
除了你创建了一个不必要的额外java对象之外没有区别。但是,如果jndi服务器是远程的,你会创建两个不同的网络连接和管理它们的笨蛋 - 绝对不是应该做的。