对JNDI感到困惑

时间:2013-06-13 08:21:11

标签: java jndi

我一直在阅读关于JNDI的一篇文章,但我很困惑。

所以,简单地说:

  1. JNDI 就像一个对象容器,每个条目都是一个字符串名称 - 对象对?
  2. 是存储在 JVM 中的那些对吗?例如,在同一台本地机器上,App#1注册一个名为"testDS"的数据源对象,一段时间后,App#2可以使用密钥"testDS"获取该数据源对象?但是从哪里来?在JVM中?

3 个答案:

答案 0 :(得分:3)

你需要后退一步。在Java和JNDI之外并且与Java和JNDI分开,有“目录和命名服务”。这些东西就像LDAP,DNS或您的计算机文件系统(想想路径和文件名),它们允许您按名称和目录访问结构化的东西。

JNDI是一个Java API,它允许您使用其中一个,并且无论您使用哪个接口,接口应该大致相同。

您通过JNDI访问的对象使用目录和命名服务存储,而不是直接存储在JVM中。

因此,如果您有两个使用JNDI访问同一目录和命名服务并配置相同的JVM,则它们应该访问相同的对象。如果他们正在访问不同的服务,他们将无法访问相同的对象,无论它是否是相同的JVM。

答案 1 :(得分:0)

当您尝试访问d:/users/name/text.txt下的文件时,请考虑您只需键入其名称并访问其内容即可。 JNDI以相同的概念工作,你去那里用一个名字JNDI处理你想要的东西。

答案 2 :(得分:0)

你错过了一些关于JNDI的事情。 JNDI是一个应用程序编程接口(API)。它是一组类,为使用Java编程语言编写的应用程序提供命名和目录功能。

因此,由于这些类在JVM中运行,我们可以说通过使用JVM,应用程序利用JNDI来执行它们的任务。