【规范】JNDI

定义

JNDI是 Java 命名与目录接口(Java Naming and DirectoryInterface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。

 

先回忆没有JNDI的时候,我们作为程序员的做法。

程序员开发时,知道要开发访问MySQL数据库的应用,于是将一个对 MySQL JDBC驱动程序类的引用进行了编码,并通过使用适当的 JDBC URL连接到数据库。还记得原来在学生信息管理系统、机房收费系统的时候咱们附加数据库之后,在配置文件里头加了一串的那个database=localuid=sa,pwd=***类似这种代码。相信大家也都还印象比较深刻吧。

 

这样做存在的问题:

1、数据库服务器名称MyDBServer、用户名和口令都可能需要改变,由此引发JDBC URL需要修改;

 

2、数据库可能改用别的产品,如改用DB2或者Oracle,引发JDBC驱动程序包和类名需要修改;

 

3、随着实际使用终端的增加,原配置的连接池参数可能需要调整;

 

解决办法:

程序员应该不需要关心“具体的数据库后台是什么?JDBC驱动程序是什么?JDBCURL格式是什么?访问数据库的用户名和口令是什么?”等等这些问题,程序员编写的程序应该没有对 JDBC 驱动程序的引用,没有服务器名称,没有用户名称或口令—— 甚至没有数据库池或连接管理。而是把这些问题交给J2EE容器来配置和管理,程序员只需要对这些配置和管理进行引用即可。于是就有了JNDI规范。

 

有了JNDI之后的做法

J2EE的容器中配置JNDI的参数,定义数据源,设置名称,然后通过数据源名称访问后台数据库。

 

再次回到定义

JNDI:

Java Naming and DirectoryInterface提供命名服务和目录服务的API。那什么是命名服务?什么事目录服务?

命名服务:说的通俗点就是现实生活和计算机的一个映射。比如,百度的域名是www.baidu.com,但是对于计算机来说这个域名就对应着http://202.108.22.5/,这两个都是访问的相同的界面。那么这两者之间存在映射关系。

目录服务:从计算机角度理解为在互联网上有着各种各样的资源和主机,但是这些内容都是散落在互联网中,为了访问这些散落的资源并获得相应的服务,就需要用到目录服务。


小结

现在越来越理解编程的世界,无论多复杂的系统,多精妙的算法其实最终目的只有一个,那就是解耦。原来接触到的只不过是代码之间的解耦,而现在更多的是不同应用程序更甚至是硬件之间的解耦。

J2EE中更多的规范,请看后续文章。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值