在xml配置的方式中扎附,經常看到一些框架自定義的標簽结耀,看起來很高級留夜。其中要實現(xiàn)匙铡,很簡單。
聲明自己的schema
這是第一步碍粥,首先為自己的組件定義合適的xml schema鳖眼。這部分需要xsd的知識,不是本文重點嚼摩,不做展開钦讳。
定義好自己的schema之后,放在某個目錄下低斋,通常是META-INF/下蜂厅。
配置
在resource/META-INF下增加兩個文件,就是spring.handlers和spring.schemas膊畴。
spring.schemas用于配置xml命名空間和第一步創(chuàng)建的xsd文件
http\://xxx.com/schema/test.xsd=META-INF/test.xsd
而spring.handlers則是為標簽(命名空間)添加解析器的掘猿。
http\://xxx.com/schema/test=com.xxx.xxxxx.TestHandler
解析器的作用就是將這段自定義xml轉換成BeanDefinition,并且注冊到BeanFactory上唇跨,因此這里的標簽解析器稠通,其實是一個BeanDefinitionParser 。
在自定義標簽的實踐中买猖,可以通過NamespaceHandlerSupport 而不是直接使用BeanDefinitionParser 改橘,來獲得一些便捷。
生成BeanDefinition
反正根據(jù)自己需要玉控,創(chuàng)建合適的BeanDefinition就好飞主,沒啥好說的。