什么是JNDI,SPI,CCI,LDAP和JCA?

JNDI代表Java命名和目錄接口 。 它是用于提供對目錄服務(即帶有對象的服務映射名稱(字符串),對遠程對象或簡單數據的引用)的訪問的API。 這就是所謂的
約束力 。 綁定集稱為上下文 。 應用程序使用JNDI接口訪問資源。

簡而言之,它就像一個帶有String鍵和代表Web資源的Object值的hashmap。 通常,這些資源是根據目錄服務中的層次結構組織的。 級別用分隔符定義(例如對于DNS,“。”,對于LDAP,例如“。”)。 這是一個命名約定 。 每個上下文都有其命名約定。

SPI代表服務提供商接口 。 換句話說,這些是服務的API。 JNDI指定一個SPI來實現目錄服務。 存儲在目錄中的對象可以具有屬性(id和value)。 可以對這些屬性執行CRUD操作。 如果目錄允許,也可以根據對象的屬性搜索對象,而不是提供名稱。 用戶應用程序提供的信息稱為搜索過濾器

JNDI解決了哪些問題?

沒有JNDI,遠程資源的位置或訪問信息將必須在應用程序中進行硬編碼或在配置中可用。 維護此信息非常繁瑣且容易出錯。

例如,如果資源已使用另一IP地址重定位在另一臺服務器上,則必須使用此新信息來更新使用此資源的所有應用程序。 使用JNDI,這不是必需的。 僅需要更新相應的資源綁定。 應用程序仍然可以使用其名稱訪問它,并且重定位是透明的。

另一個常見用途是將應用程序從開發環境移至測試環境,最后移至生產環境。 在每個階段,可能要使用不同的數據庫進行開發,測試和生產。 在每種情況下,可以對每個數據庫進行不同的綁定。 該應用程序不需要加注。

什么是LDAP?

LDAP代表輕型目錄應用協議。 它通常在JNDI中用作目錄服務。 今天,公司將LDAP服務器設置為專用于響應JNDI請求。 通常的用途是維護公司員工的名單,以及他們的電子郵件和訪問其他應用程序的憑據。

通過集中這些信息,每個應用程序不必在其自己的數據庫中存儲員工信息的多個副本,這更易于維護,并且不易出錯和出現不一致。

JCA和CCI呢?

JCA代表Java EE連接器體系結構。 它是一種Java技術,通過向應用程序服務器及其應用程序提供連接,從而幫助它們連接到其他信息系統。 JCA為連接器服務定義了自己的SPI。 CCI代表通用客戶端接口 。 它被定義為JCA的一部分。 用戶應用程序用來訪問JCA連接服務的API。

JCA幫助集成單獨開發的信息系統。 通常,用戶應用程序可以使用JCA來連接到這些數據庫(或信息系統),而不是使用JDBC來訪問數據庫(或多或少等同于硬編碼配置)。 JCA實例可以在JDNI目錄中注冊,也可以由用戶應用程序檢索。

Web應用程序呢?

通常,Web應用程序在稱為應用程序服務器的容器中運行。 Web應用程序可以創建自己的JNDI服務來存儲對象,但是它們也可以使用相應的名稱從容器本身檢索這些對象。 在這種情況下,資源(通常是數據庫)是在容器級別配置的。

參考: 什么是JNDI,SPI,CCI,LDAP和JCA? 從我們的JCG合作伙伴 Jerome Versrynge在技術說明博客中獲得。

翻譯自: https://www.javacodegeeks.com/2013/02/what-is-jndi-spi-cci-ldap-and-jca.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370087.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370087.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370087.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android studio gradle 學習,學習Android Studio里的Gradle

一直聽說Gradle很強大,只是偶爾用Android Studio創建Demo的時候看到他一次,今天抽個時間完整記錄一下。1.gradle位置Android Studio項目創建好之后,默認有3個gradle文件,分別位于:/settings.gradle/build.gradle/app/b…

接口耗時打印并統計

1.可以利用Tomcat的access-log日志&#xff0c;讓其打印出http請求的每次耗時。可以在 config/server.xml里Host標簽下配置tomcat訪問日志格式 <Valve className"org.apache.catalina.valves.AccessLogValve" directory"logs" prefix&quo…

js內存

js在定義變量時完成了內存的分配 js具有自動垃圾回收機制&#xff0c;垃圾回收器會每隔固定的一段時間就執行一次釋放操作&#xff0c;即找出那些不再繼續使用的值&#xff0c;釋放其占用的內存 js中最常用的是通過標記清除的算法來找到哪些對象是不再繼續使用的&#xff0c;因…

halcon 圖像差分_Halcon編程-基于紋理的mara檢測

表面瑕疵檢測是機器視覺領域非常重要的一個應用。機器視覺是集光學、機電和計算機三個領域的一門不算新的技術。但目前表面瑕疵檢測在學界主要是計算機專業或者控制專業瞄準圖像處理方向在做&#xff0c;而視覺光學系統這一塊主要是光學工程專業在做。很少有研究者把這三塊都結…

Apache Camel入門

在先前的博文中&#xff0c;我們了解了企業集成模式&#xff08;EIP&#xff09;。 現在&#xff0c;在這篇文章中&#xff0c;我們將研究實現這些模式的Apache Camel框架。 關于駱駝&#xff1a; Apache Camel是一個開放源代碼項目&#xff0c;已有將近5年的歷史&#xff0c;…

css 寫打印樣式問題

&#xff08;1&#xff09;背景顏色打印不出來問題解決方法 background樣式要加上 !important&#xff1b;color樣式要加上 !important&#xff1b;-webkit-print-color-adjust: exact;然后記得瀏覽器打印設置里面要在“打印背景圖形”前面打勾。 -webkit-print-color-adjust:…

android studio smssdk,SMSSDK for Android 配置

1.集成之前先要申請Mob的appkey與appsecret2.在Mob官網下載最新SDK&#xff0c;解壓后會看到以下目錄結構&#xff1a;SMSSDK下存放的是短信SDK的全部內容。3.在android studio中加入SMS的第三方庫AS版本的SMSSDK目錄下包含以下內容&#xff1a;MobCommons.jar&#xff1a;Mob …

linux后臺不掛斷運行 nohup命令

//后臺常在 退出終端仍然運行 nohup python pyredis.py & nohup輸出重定向到my.log nohup command > my.log 2>&1 &轉載于:https://www.cnblogs.com/plxm/p/8136833.html

Ubuntu 16.04安裝微信

微信沒有出Linux的版本&#xff0c;但是可以通過以下方式解決&#xff1a; 1、使用網頁版&#xff0c;除了沒有公眾號之后&#xff0c;一切都沒問題&#xff0c;包括傳文件等。 網頁登錄地址&#xff1a;https://wx.qq.com/ 2、使用第三方版本&#xff0c;只不過這個是桌面應用…

navision系統和sap區別_SAP那些事-實戰篇-89-淺談金稅接口方案

以前金稅接口這塊一直是銷售顧問在做&#xff0c;雖然和財務相關&#xff0c;也沒有怎么關注。這次項目把金稅接口分到了財務模塊&#xff0c;結果遇到了一些問題&#xff0c;趁此機會把這塊總結一下方案&#xff0c;供各位看官參考。方案1&#xff1a; 文本方案&#xff0c;這…

不變性的來龍去脈

因此&#xff0c;在我的第一篇文章中&#xff0c;我談到了一些構建器模式&#xff0c;并提到了一個非常強大但卻被忽視的概念&#xff1a;不變性。 什么是不可變類&#xff1f; 這只是一個其實例無法修改的類。 類屬性的每個值都在其聲明或其構造函數中設置&#xff0c;并在對…

JavaScript總結(3)

第3章 獲取用戶的輸入 &#xff1c;script&#xff1e;10 intAprompt("請輸入第一個數字","");11 intBprompt("請輸入第二個數字",27);默認是2712 document.write("你輸入的第一個數字是"intA);13 document.write("&#xff1c;…

css書寫規范

在書寫css樣式的時候總是無意中就寫亂了&#xff0c;無論是命名或者是樣式的書寫順序&#xff0c;這里做一個總結&#xff0c;提醒自己在書寫css的時候時刻注意&#xff0c;大家可以參考哈。 1. 樣式屬性順序 單個樣式規則下的屬性在書寫時&#xff0c;應按功能進行分組&…

android 協程,關于android:Kotlin協程實現原理SuspendCoroutineContext

明天咱們來聊聊Kotlin的協程Coroutine。如果你還沒有接觸過協程&#xff0c;舉薦你先瀏覽這篇入門級文章What? 你還不曉得Kotlin Coroutine?如果你曾經接觸過協程&#xff0c;置信你都有過以下幾個疑難&#xff1a;協程到底是個什么貨色&#xff1f;協程的suspend有什么作用&…

清空easyui checkbox選中項

$(#dg).datagrid(unselectAll);轉載于:https://www.cnblogs.com/douhuan/p/7116744.html

python 編輯excel需要什么包_Python 中操作EXCEL表格的包

今天&#xff0c;馬云爸爸又來貢獻金句了&#xff0c;比王健林公公一億一個小目標還高&#xff0c;“一個月掙一二十個億很難受&#xff01;&#xff01;&#xff01;”&#xff0c;作為在傳統企業主要為電商部門提供數據分析的數據分析師&#xff0c;體驗太深刻了。雙11前后&a…

用Java處理大文件

最近&#xff0c;我不得不處理一組包含逐筆歷史匯率市場數據的文件&#xff0c;并很快意識到使用傳統的InputStream都無法將它們讀取到內存中&#xff0c;因為每個文件的大小都超過4 GB。 Emacs甚至無法打開它們。 在這種特殊情況下&#xff0c;我可以編寫一個簡單的bash腳本&…

java IO(一):File類

1.File類簡介 File類位于java.io包中。它面向文件層次級別操作、查看文件&#xff0c;而字節流、字符流操作數據時顯然比之更底層。 學習File類包括以下幾個重點&#xff1a;文件路徑、文件分隔符、創建文件(目錄)、刪除文件(目錄)、查看文件內容(輸出目錄內文件)、判斷文件(是…

android listview 開發,android開發之ListView實現

今天又初步學習了一下ListView控件&#xff0c;看看效果如下&#xff1a;LisViewActivity.java源碼&#xff1a;package com.jinhoward.UI_listview;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.os.Bundl…

input ios問題 小程序_微信小程序開發常見問題匯總

原標題&#xff1a;微信小程序開發常見問題匯總1、域名必須是https非https的域名不被微信小程序允許。2、input組件placeholder字體顏色卸載placeholder-class里面的color并不生效&#xff0c;需要寫在placeholder-style里面就可以了。3、wx.navigateTo無法跳轉到帶tabbar的頁面…