JNDI,名称服务和本地文件系统

时间:2015-05-28 21:09:44

标签: java jndi

我试图通过在网上搜索一些例子来清除我对JNDI的怀疑。我遇到了以下链接(来自oracle的关于此主题的教程)

http://docs.oracle.com/javase/jndi/tutorial/getStarted/examples/naming.html

在此链接中,它说:

  

“此示例向您展示如何编写一个程序,该程序查找名称作为命令行参数传入的对象。它使用文件系统的服务提供程序。”

根据我的理解,JNDI标准化了我们如何访问/查找命名和目录服务对象,类似于下面的内容:

Java app ---“使用JNDI API” - >访问目录/命名服务的对象。

现在,在示例中,它是“在文件系统中查找对象”。那么文件系统是一个“命名服务”吗?

这些“服务”是可以通过SPI访问的程序/软件吗? SPI在这里扮演什么角色?

我可能不对,是SPI的“JNDI API”实现? (比如JDBC驱动程序实现JDBC API)。

即使我浏览过在线资料,我也很困惑。

任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:1)

  

文件系统a"命名服务" ?

文件系统提供程序是一个JNDI SPI,它使用文件系统而不是真正的命名服务。它是一种玩具,不是用于严肃的用途。只是一个概念证明。

  

这些"服务"可通过SPI访问的程序/软件?

一般。例如,COSnaming,LDAP,RMI Registry。

  

SPI在这里扮演什么角色?

它是特定命名服务的JNDI实现。

  

我可能不对,是SPI" JNDI API"的实现? (就像JDBC驱动程序实现JDBC API一样)。

Sorta有点,是的。