在不少狀況下,咱們須要爲系統提供可配置化支持,簡單的作法能夠直接基於spring的標準Bean來配置,但配置較爲複雜或者須要更多豐富控制的時候,會顯得很是笨拙。通常的作法會用原生態的方式去解析定義好的xml文件,而後轉化爲配置對象,這種方式固然能夠解決全部問題,但實現起來比較繁瑣,特別是是在配置很是複雜的時候,解析工做是一個不得不考慮的負擔。Spring提供了可擴展Schema的支持,這是一個不錯的折中方案,完成一個自定義配置通常須要如下步驟: git
設計配置屬性和JavaBean github
編寫XSD文件 spring
編寫NamespaceHandler和BeanDefinitionParser完成解析工做 mvc
編寫spring.handlers和spring.schemas串聯起全部部件 app
在Bean文件中應用 ide
Spring 2.5在2.0的基於Schema的Bean配置的基礎之上,再增長了擴展XML配置的機制。經過該機制,咱們能夠編寫本身的Schema,並根據自定義的Schema用自定的標籤配置Bean。spa
源碼設計
工程目錄:orm
pom.xml配置xml
people實體類,也能夠理解爲bean
PeopleBeanDefinitionParser解析bean
MyNamespaceHandler
xsd文件內容
run:
自定義spring schema demo搞定
源碼下載:
https://github.com/sunmutian/springmvc4tian/tree/master/custom-spring