Spring中的NamespaceHandler接口及相關(guān)軟件包說明
NamespaceHandler接口
NamespaceHandler 接口,DefaultBeanDefinitionDocumentReader 使用該接口來處理在spring xml 配置文件中自定義的命名空間。

在jdbc 模塊,我們使用JdbcNamespaceHandler 來處理jdbc 配置的命名空間,其代碼如下:
public class JdbcNamespaceHandler extends NamespaceHandlerSupport {
public JdbcNamespaceHandler() {
}
public void init() {
this.registerBeanDefinitionParser("embedded-database", new EmbeddedDatabaseBeanDefinitionParser());
this.registerBeanDefinitionParser("initialize-database", new InitializeDatabaseBeanDefinitionParser());
}
}其中, EmbeddedDatabaseBeanDefinitionParser 繼承了AbstractBeanDefinitionParser , 解析<embedded-database> 元素, 并使用EmbeddedDatabaseFactoryBean 創(chuàng)建一個BeanDefinition。
順便介紹一下用到的軟件包org.w3c.dom。
軟件包org.w3c.dom:為文檔對象模型(DOM) 提供接口,該模型是Java API for XMLProcessing 的組件API。該Document Object Model Level 2 Core API 允許程序動態(tài)訪問和更新文檔的內(nèi)容和結(jié)構(gòu)。
- Attr:Attr 接口表示Element 對象中的屬性。
- CDATASection: CDATA 節(jié)用于轉(zhuǎn)義文本塊,該文本塊包含的字符如果不轉(zhuǎn)義則會被視為標(biāo)記。
- CharacterData: CharacterData 接口使用屬性集合和用于訪問DOM 中字符數(shù)據(jù)的方法擴展節(jié)點。
- Comment: 此接口繼承自CharacterData 表示注釋的內(nèi)容,即起始'<!--' 和結(jié)束'-->' 之間的所有字符。
- Document: Document 接口表示整個HTML 或XML 文檔。
- DocumentFragment: DocumentFragment 是“輕量級”或“最小”Document 對象。
- DocumentType: 每個Document 都有doctype 屬性,該屬性的值可以為null,也可以為DocumentType 對象。
- DOMConfiguration: 該DOMConfiguration 接口表示文檔的配置,并維護一個可識別的參數(shù)表。
- DOMError: DOMError 是一個描述錯誤的接口。
- DOMErrorHandler: DOMErrorHandler 是在報告處理XML 數(shù)據(jù)時發(fā)生的錯誤或在進行某些其他處理(如驗證文檔)時DOM 實現(xiàn)可以調(diào)用的回調(diào)接口。
- DOMImplementation: DOMImplementation 接口為執(zhí)行獨立于文檔對象模型的任何特定實例的操作提供了許多方法。
- DOMImplementationList: DOMImplementationList 接口提供對DOM 實現(xiàn)的有序集合的抽象,沒有定義或約束如何實現(xiàn)此集合。
- DOMImplementationSource: 此接口允許DOM 實現(xiàn)程序根據(jù)請求的功能和版本提供一個或多個實現(xiàn),如下所述。
- DOMLocator: DOMLocator 是一個描述位置(如發(fā)生錯誤的位置)的接口。
- DOMStringList: DOMStringList 接口提供對DOMString 值的有序集合的抽象,沒有定義或約束此集合是如何實現(xiàn)的。
- Element: Element 接口表示HTML 或XML 文檔中的一個元素。
- Entity: 此接口表示在XML 文檔中解析和未解析的已知實體。
- EntityReference: EntityReference 節(jié)點可以用來在樹中表示實體引用。
- NamedNodeMap: 實現(xiàn)NamedNodeMap 接口的對象用于表示可以通過名稱訪問的節(jié)點的集合。
- NameList NameList 接口提供對并行的名稱和名稱空間值對(可以為null 值)的有序集合的抽象,無需定義或約束如何實現(xiàn)此集合。
- Node: 該Node 接口是整個文檔對象模型的主要數(shù)據(jù)類型。
- NodeList: NodeList 接口提供對節(jié)點的有序集合的抽象,沒有定義或約束如何實現(xiàn)此集合。
- Notation: 此接口表示在DTD 中聲明的表示法。
- ProcessingInstruction: ProcessingInstruction 接口表示“處理指令”,該指令作為一種在文檔的文本中保持特定于處理器的信息的方法在XML 中使用。
- Text: 該Text 接口繼承自CharacterData,并且表示Element 或Attr 的文本內(nèi)容(在XML 中稱為字符數(shù)據(jù))。
- TypeInfo: TypeInfo 接口表示從Element 或Attr 節(jié)點引用的類型,用與文檔相關(guān)的模式指定。
- UserDataHandler: 當(dāng)使用Node.setUserData() 將一個對象與節(jié)點上的鍵相關(guān)聯(lián)時,當(dāng)克隆、導(dǎo)入或重命名該對象關(guān)聯(lián)的節(jié)點時應(yīng)用程序可以提供調(diào)用的處理程序。
到此這篇關(guān)于Spring中的NamespaceHandler接口及相關(guān)軟件包說明的文章就介紹到這了,更多相關(guān)NamespaceHandler接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis Select Count(*)的返回值類型介紹
這篇文章主要介紹了Mybatis Select Count(*)的返回值類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Springboot遷移到Micronaut實現(xiàn)過程詳解
這篇文章主要為大家?介紹了Springboot遷移到Micronaut實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
MyBatis樹形結(jié)構(gòu)查詢的實現(xiàn)示例
本文介紹了一種使用MyBatis進行樹形結(jié)構(gòu)查詢的方法,通過構(gòu)造臨時表和內(nèi)連接,實現(xiàn)了不同層級數(shù)據(jù)的一次性查詢及映射,感興趣的可以了解一下2025-11-11
spring cloud如何修復(fù)zuul跨域配置異常的問題
最近的開發(fā)過程中,使用spring集成了spring-cloud-zuul,在配置zuul跨域的時候遇到了問題,下面這篇文章主要給大家介紹了關(guān)于spring cloud如何修復(fù)zuul跨域配置異常的問題,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09
springboot下添加全局異常處理和自定義異常處理的過程解析
在spring項目中,優(yōu)雅處理異常,好處是可以將系統(tǒng)產(chǎn)生的全部異常統(tǒng)一捕獲處理,自定義的異常也由全局異常來捕獲,如果涉及到validator參數(shù)校驗器使用全局異常捕獲也是較為方便,這篇文章主要介紹了springboot下添加全局異常處理和自定義異常處理,需要的朋友可以參考下2023-12-12
Java中ArrayList在foreach里remove的問題詳析
這篇文章主要給大家介紹了關(guān)于Java中ArrayList在foreach里remove問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2018-09-09
Java實現(xiàn)String轉(zhuǎn)Integer的四種方案對比
在Java項目開發(fā)中,經(jīng)常會有類型轉(zhuǎn)換處理,這篇文章主要為大家詳細介紹了Java實現(xiàn)String轉(zhuǎn)Integer的四種方案對比,感興趣的小伙伴可以了解下2026-03-03
Java Stream 的 flatMap 與 map 的核
map進行元素到元素的單層轉(zhuǎn)換,flatMap則將元素映射為流后再扁平化處理,適用于嵌套結(jié)構(gòu)展開,二者核心差異在于是否展開多層數(shù)據(jù),選擇時需根據(jù)數(shù)據(jù)結(jié)構(gòu)層級和性能需求決定,本文給大家介紹Java Stream 的flatMap與map的核心區(qū)別,感興趣的朋友一起看看吧2025-08-08

