在很多情況下,我們需要為系統提供可配置化支援,簡單的做法可以直接基于spring的标準Bean來配置,但配置較為複雜或者需要更多豐富控制的時候,會顯得非常笨拙。一般的做法會用原生态的方式去解析定義好的xml檔案,然後轉化為配置對象,這種方式當然可以解決所有問題,但實作起來比較繁瑣,特别是是在配置非常複雜的時候,解析工作是一個不得不考慮的負擔。Spring提供了可擴充Schema的支援,這是一個不錯的折中方案,完成一個自定義配置一般需要以下步驟:
- 設計配置屬性和JavaBean
- 編寫XSD檔案
- 編寫NamespaceHandler和BeanDefinitionParser完成解析工作
- 編寫spring.handlers和spring.schemas串聯起所有部件
- 在Bean檔案中應用
Spring 2.5在2.0的基于Schema的Bean配置的基礎之上,再增加了擴充XML配置的機制。通過該機制,我們可以編寫自己的Schema,并根據自定義的Schema用自定的标簽配置Bean。
源碼
工程目錄:
pom.xml配置
people實體類,也可以了解為bean
PeopleBeanDefinitionParser解析bean
MyNamespaceHandler
xsd檔案内容
run:
自定義spring schema demo搞定