我试图通过在网上搜索一些例子来清除我对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)。
即使我浏览过在线资料,我也很困惑。
任何帮助都非常感谢。
答案 0 :(得分:1)
文件系统a"命名服务" ?
文件系统提供程序是一个JNDI SPI,它使用文件系统而不是真正的命名服务。它是一种玩具,不是用于严肃的用途。只是一个概念证明。
这些"服务"可通过SPI访问的程序/软件?
一般。例如,COSnaming,LDAP,RMI Registry。
SPI在这里扮演什么角色?
它是特定命名服务的JNDI实现。
我可能不对,是SPI" JNDI API"的实现? (就像JDBC驱动程序实现JDBC API一样)。
Sorta有点,是的。