參考資料:
dubbo對spring自定義標籤的擴充套件的實現:
spring官方文件 42.1中,介紹了如何自定義spring標籤,步驟如下:
1、編寫乙個xml schema描述您的自定義元素
2、編寫自定義命名空間處理程式實現,實現namespackhandler介面
3、編寫乙個或多個自定義的bean定**析器,實現beandefinitionparser介面
4、註冊到spring容器
ps:官方文件描述出處,開啟 ,搜尋42.1即可
1、編寫yf.xsd,名稱根據自己的喜好來寫即可
complexcontent 該複雜型別只包含元素或不包含任何元素內容(空)
attribute 該複雜型別包含指定的屬性。
annotation和documentation,結合起來,對定義的內容,做一定的文字說明
<
xsd:annotation
>
<
xsd:documentation
>
xsd:documentation
>
xsd:annotation
>
1)定義乙個type
<
xsd:complextype
name
=>
<
xsd:attribute
name
="id"
type
="xsd:id"
>
<
xsd:annotation
>
<
xsd:documentation
>
xsd:documentation
>
xsd:annotation
>
xsd:attribute
>
xsd:complextype
>
2)定義標籤,並指定其引用哪個type,擷取部分示例如下
<
xsd:element
name
= type
=>
<
xsd:annotation
>
<
xsd:documentation
>
xsd:documentation
>
xsd:annotation
>
xsd:element
>
public
class
yfnamespacehandler
extends
namespacehandlersupport
}
spring.handlers指定namespacehandler,內容如下:
.xsd完整內容如下:
<?xml version="1.0" encoding="utf-8"?>
xmlns
=""xmlns:xsi
=""xmlns:c
=""xmlns:context
="ontext"
xmlns:lang
=""xmlns:util
=""xmlns:yf
=""xsi:schemalocation
=" /spring-beans.xsd
ontext ontext/spring-context-3.2.xsd
/spring-lang-3.2.xsd
/spring-util-3.2.xsd
.xsd"
>
name
="yfnametest"
version
="1.0"
/>
<
yf:registryid=
"yfregistry"
address
="127.0.0.1"
port
="8080"
/>
beans
>
2)編寫測試類
public
class
yftagtest
}
3)執行測試類,結果如下,表明自定義標籤測試成功。
23:34:29.734 [main] debug org.springframework.beans.factory.support.defaultlistablebeanfactory - returning cached instance of singleton bean 'lifecycleprocessor'
23:34:29.743 [main] debug org.springframework.core.env.propertysourcespropertyresolver - could not find key 'spring.livebeansview.mbeandomain' in any property source
23:34:29.753 [main] debug org.springframework.beans.factory.support.defaultlistablebeanfactory - returning cached instance of singleton bean 'yfregistry'
registry
process finished with exit code 0
spring自定義標籤
如何將自定義的配置標籤化是個比較通用的問題,spring已經很好的幫我們設計完成,只需要我們去實現。將繁瑣的配置通過xml配置,spring自動轉換成bean,整個過程比較合理。1.建立乙個需要擴充套件的元件 package com.bean public class user public voi...
Spring的自定義標籤
在com.test.beans下建立user類 package com.test.beans public class user public user string username,string email public string getusername public void setuse...
Spring的自定義標籤
spring為自定義xml標籤載入提供了擴充套件。使用者可自定義標籤並註冊到spring的bean容器中。實現較為複雜的bean載入解析。我們認為 xml schema 很快會在大部分網路應用程式中取代 dtd。理由如下 xsd schema xmlns xmlns xsd targetnamesp...