2011-11-28 96 views
2

我正在阅读关于JNDI的内容,如果我已经理解了迄今为止阅读的内容,那么JNDI是一种用于从命名目录(例如LDAP,DNS等)获取资源的API。什么是命名目录?

我还没有听说过命名目录,我试图谷歌它的解释。我读过它是一个存储名称和对象的目录(类似Java中的HashMap?)。但是我不明白命名目录是什么......,我也不了解JNDI是如何工作的。

如果有人能够解释或/和链接到网站进一步阅读,并帮助我理解,我会非常高兴。

谢谢。

(PS,对不起后标记坏,但我不知道在哪里把它)

+1

JNDI代表“Java命名和目录接口”。没有“命名目录”这样的东西。 http://en.wikipedia.org/wiki/JNDI – skaffman

回答

1

这里有一些文档和教程从Oracle:

JavaWorld也有关于这个问题的有趣的文章

+0

你提供的第二个链接太旧了。我记得试图像2年前那样从该教程中运行样本,但没有任何工作。我现在可能会考虑重新访问它。也许以我目前的理解水平来看,它会更容易遵循。 – jFrenetic

1

基本上,目录服务是一种用于存储大量(通常是异构)结构化数据的方法,将其分层组织(包括复杂的授权方案),并允许客户端通过唯一名称访问每个数据项。

它基本上就像一个文件系统,但针对非常小的文件的非常深的层次结构进行了优化,这些非常小的文件通过网络被许多客户端同时访问。在Java EE的上下文中,JNDI主要仅用作间接级别,以避免硬编码依赖性(如EJB和数据源)。相反,它们是通过名称查找的,可以在运行时配置它们。这相当于一个依赖注入容器,事实上,我相信Java EE依赖注入在内部基于JNDI。

但它确实有点历史遗留的,在Java EE的第一个版本中引入的,和什么都给那些名声不好,因为它是使用不便的一部分。更清晰,更简单的DI形式随后在Spring中出现,并在Java EE中被采用。