jndi ldap_什么是JNDI,SPI,CCI,LDAP和JCA?
jndi ldap
JNDI代表Java命名和目錄接口 。 它是用于提供對目錄服務(wù)(即,服務(wù)映射名稱(字符串)與對象,對遠(yuǎn)程對象或簡單數(shù)據(jù)的引用)訪問的API。 這就是所謂的
約束力 。 綁定集稱為上下文 。 應(yīng)用程序使用JNDI接口訪問資源。
簡而言之,它就像一個帶有String鍵和代表Web資源的Object值的hashmap。 通常,這些資源是根據(jù)目錄服務(wù)中的層次結(jié)構(gòu)組織的。 級別用分隔符定義(例如,對于DNS,“。”,對于LDAP,例如“'”)。 這是一個命名約定 。 每個上下文都有其命名約定。
SPI代表服務(wù)提供商接口 。 換句話說,這些是服務(wù)的API。 JNDI指定一個SPI來實現(xiàn)目錄服務(wù)。 存儲在目錄中的對象可以具有屬性(id和value)。 可以對這些屬性執(zhí)行CRUD操作。 如果目錄允許,也可以根據(jù)對象的屬性搜索對象,而不是提供名稱。 用戶應(yīng)用程序提供的信息稱為搜索過濾器 。
JNDI解決了哪些問題?
沒有JNDI,遠(yuǎn)程資源的位置或訪問信息將必須在應(yīng)用程序中進(jìn)行硬編碼或在配置中可用。 維護(hù)此信息非常繁瑣且容易出錯。
例如,如果資源已使用其他IP地址重定位在另一臺服務(wù)器上,則必須使用此新信息來更新使用此資源的所有應(yīng)用程序。 使用JNDI,這不是必需的。 僅需要更新相應(yīng)的資源綁定。 應(yīng)用程序仍然可以使用其名稱訪問它,并且重定位是透明的。
另一個常見用途是將應(yīng)用程序從開發(fā)環(huán)境移至測試環(huán)境,最后移至生產(chǎn)環(huán)境。 在每個階段,可能要使用不同的數(shù)據(jù)庫進(jìn)行開發(fā),測試和生產(chǎn)。 在每種情況下,可以對每個數(shù)據(jù)庫進(jìn)行不同的綁定。 該應(yīng)用程序不需要加注。
什么是LDAP?
LDAP代表輕量級目錄應(yīng)用協(xié)議。 它通常在JNDI中用作目錄服務(wù)。 今天,公司將LDAP服務(wù)器設(shè)置為專用于響應(yīng)JNDI請求。 通常的用途是維護(hù)公司員工的名單,以及他們的電子郵件和訪問其他應(yīng)用程序的憑據(jù)。
通過集中這些信息,每個應(yīng)用程序都不必在自己的數(shù)據(jù)庫中存儲員工信息的多個副本,這更易于維護(hù),并且不易出錯和出現(xiàn)不一致。
JCA和CCI呢?
JCA代表Java EE連接器體系結(jié)構(gòu)。 它是一種Java技術(shù),通過為應(yīng)用程序服務(wù)器及其應(yīng)用程序提供連接,從而幫助它們連接到其他信息系統(tǒng)。 JCA為連接器服務(wù)定義了自己的SPI。 CCI代表通用客戶端接口 。 它被定義為JCA的一部分。 用戶應(yīng)用程序用來訪問JCA連接服務(wù)的API。
JCA幫助集成單獨開發(fā)的信息系統(tǒng)。 通常,用戶應(yīng)用程序可以使用JCA來連接到這些數(shù)據(jù)庫(或信息系統(tǒng)),而不是使用JDBC來訪問數(shù)據(jù)庫(或多或少等同于硬編碼配置)。 JCA實例可以在JDNI目錄中注冊,也可以由用戶應(yīng)用程序檢索。
Web應(yīng)用程序呢?
通常,Web應(yīng)用程序在稱為應(yīng)用程序服務(wù)器的容器中運(yùn)行。 Web應(yīng)用程序可以創(chuàng)建自己的JNDI服務(wù)來存儲對象,但是它們也可以使用相應(yīng)的名稱從容器本身檢索這些對象。 在這種情況下,資源(通常是數(shù)據(jù)庫)是在容器級別配置的。
參考: 什么是JNDI,SPI,CCI,LDAP和JCA? 從我們的JCG合作伙伴 Jerome Versrynge在技術(shù)說明博客中獲得。
翻譯自: https://www.javacodegeeks.com/2013/02/what-is-jndi-spi-cci-ldap-and-jca.html
jndi ldap
總結(jié)
以上是生活随笔為你收集整理的jndi ldap_什么是JNDI,SPI,CCI,LDAP和JCA?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iphoneled闪烁在哪里
- 下一篇: 适用于Java开发人员的Elastics