2017-04-27 95 views
-1

我已經閱讀了使用這個link從oracle的JNDI在線教程。JNDI體系結構:JNDI API,服務提供程序,SPI?

它具有如下圖:

enter image description here

對於這一點,我有以下問題:

1)JNDI API - 這只是一個規格/接口這是作爲的一部分J2SE?也就是說,當我們調用這個API的某種方法時,它是做真正的工作,還是它在內部調用由第三方提供的其他人?

2)命名管理器 - 我沒有得到這個,也沒有提供任何解釋嗎?這是J2SE的一部分嗎?它是API嗎?

3)JNDI SPI - 這是什麼? JNDI API和JNDI SPI之間有什麼關係? JNDI API是否在內部調用JNDI SPI來完成真正的工作?誰提供這些JNDI SPI?

4)服務提供商的含義是什麼?

我無法理解這一點,任何人都可以幫助我理解簡單的話嗎?

回答

1

1)JNDI API - 這只是作爲J2SE的一部分而來的規範/接口嗎?

是的。

也就是說,當我們調用這個API的一些方法,這是否做實際工作

或它內部調用別人的,由第三方提供的?

是的。

2)命名管理器 - 我沒有得到這個,也沒有提供任何解釋嗎?這是J2SE的一部分嗎?它是API嗎?

這是一個幕後膠水,通過爲他們提供大量樣板幫助JNDI提供商。否則我不知道它是什麼意思。

3)JNDI SPI - 這是什麼? JNDI API和JNDI SPI之間有什麼關係?

見下文。

在內部做JNDI API調用JNDI SPI來做真正的工作嗎?

是的。

誰提供這些JNDI SPI?

容器或某些情況下的JRE,例如RMI提供程序,LDAP提供程序,DNS提供程序,COSNaming提供程序。

4)服務提供者是什麼意思?

提供服務的代碼。我不認爲這是一個謎。實現包含API的接口的代碼。

+0

感謝您的回答。關於JNDI SPI還有一個問題。如果我想使用openLDAP,那麼實現者是否會爲openLDAP提供SPI? – CuriousMind

+0

感嘆。我已經回答了。 LDAP的提供者是JRE的一部分。有時我想知道我爲什麼打擾。 – EJP

+0

我感謝你的寶貴意見,我尊重你幫助會員的時間。您確實提到了J2SE確實擁有LDAP提供程序。由於不同供應商可能有不同數量的LDAP實現,這就是我提出這個問題的原因。與J2SE綁定的LDAP提供程序是否能夠與任何類型的LDAP實現進行通信?我很抱歉無法完全理解這一點,同時我尊重你的時間和延長的幫助。最好的問候 – CuriousMind