JNDI的初步理解

Posted coder-who

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JNDI的初步理解相关的知识,希望对你有一定的参考价值。

1.JDNI是什么意思?

答:JNDI是 java naming and directory interface 的缩写,是j2ee开发中的一种重要的规范

 

2.JNDI有什么用?

答:如果没有JNDI,那使用JAVA连接数据库的时候是这样的(如下),如果数据库名称,用户名,密码改变需要对JAVA源代码进行修改,但是程序员应该不需要关心“具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和口令是什么?”等等这些问题,程序员编写的程序应该没有对 JDBC 驱动程序的引用,没有服务器名称,没有用户名称或口令 —— 甚至没有数据库池或连接管理。而是把这些问题交给J2EE容器来配置和管理,程序员只需要对这些配置和管理进行引用即可。由此产生JNDI ,给我的理解是JNDI是一种思想,类似于编写JAVA时使用的静态变量,所有的地方都使用同一个静态变量,当使用的静态变量需要改变时,只需要改变一个地方即可,其次所有的配置都在配置文件中完成,开发时若需要使用数据库只需要获取一个连接即可。

  1. Connection conn=null
  2. try { 
  3.     Class.forName("com.mysql.jdbc.Driver", true, Thread.currentThread().getContextClassLoader()); 
  4.     conn=DriverManager.getConnection("jdbc:mysql://MyDBServer?user=xxx&password=xxx");
  5.     ......
  6.     conn.close();
  7. } catch(Exception e) {
  8.       e.printStackTrace();
  9. } finally { 
  10.     if(conn!=null) { 
  11. try {
  12.     conn.close();
  13. } catch(SQLException e) {}
  14. }
  15. }
     

以上是关于JNDI的初步理解的主要内容,如果未能解决你的问题,请参考以下文章

JNDI是什么,怎么理解

JNDI 的理解

深入理解JVM虚拟机7:JNDI,OSGI,Tomcat类加载器实现

JNDI中 java:comp/env 的理解

深入理解JNDI注入与Java反序列化漏洞利用

理解JNDI中 java comp/env/jdbc/datasource 与 jdbc/datasource 的不同之