7. JNDI
JNDI是 Java 命名与目录接口(Java Naming and Directory Interface)
典型的使用例子就是数据库连接配置:
-
如果不使用jndi的话,我们java连接mysql就需要 自己配置url账号密码等,如果后期修改mysql会很麻烦
Class.forName("com.mysql.jdbc.Driver", true, Thread.currentThread().getContextClassLoader()); conn=DriverManager.getConnection("jdbc:mysql://MyDBServer?user=xxx&password=xxx"); ...... conn.close();
-
现在引入jndi,其实就是一个映射,jndi容器对外提供的接口名称,和内部类一一对应。下面以weblogic容器的jndi为例。
- 配置weblogic的jndi。打开weblogic控制台点击新建数据源,配置数据源jndi的名称、mysql的驱动jar包、数据库用户名密码url等信息。这里我定义的jndi名称为my_mysql_jndi
- 然后在java代码这样写
DataSource d = Class.forName("java:my_mysql_jndi", true, Thread.currentThread().getContextClassLoader());
-
使用jndi后无需关心数据源配置问题了