Spring自定義標籤範例,以及原始碼解析

2021-09-28 22:27:47 字數 2063 閱讀 5033

一 自定義標籤範例

1.實現自己的註解xsd

<?xml version="1.0" encoding="utf-8"?>

xsd:complextype

xsd:complexcontent

2.定義meta-inf/spring.schemas 配置檔案

3.定義meta-inf/spring.handlers 配置處理類

4.實現處理類,這裡並沒有真正處理,而是委託給testelementparser解析

package com.study.mike.spring.ext;

import org.springframework.beans.factory.xml.namespacehandlersupport;

public class testnamespancehandler extends namespacehandlersupport }

5. 實現解析類

package com.study.mike.spring.ext;

import com.study.mike.spring.test.test;

import org.springframework.beans.factory.support.beandefinitionbuilder;

import org.springframework.beans.factory.xml.abstractsinglebeandefinitionparser;

import org.springframework.beans.factory.xml.parsercontext;

import org.w3c.dom.element;

public class testelementparser extends abstractsinglebeandefinitionparser }

6 測試類

package com.study.mike.spring.test;

public class test

public void setid(string id) 接下來就開始執行解析到bean定義的工作

這裡有解析自定義元件的方法

在這裡,獲取到了自定義標籤的命名空間,使用動態工廠模式建立出乙個解析器

這裡是如何工作的呢、從xmlbeandefinitionreader開始解讀,提供了乙個預設的namespacehandlerresolver控制器,

可以看到,這個處理器帶著配置檔案的位址。

這裡和xml解析類時,也是獲取到這個路勁下的配置檔案,獲取到指定的處理器,這種設計可以達到動態的增加元件,而不需要修改**。

到了這裡,我們就獲取到處理類。並基於自定義的名稱獲取到自定義的乙個解析器,沒有就使用預設的。

在使用解析器解析時,採用父類定義了模板的方法,執行了註冊的功能,而解析的操作由子類實現,到這裡就註冊完成了

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 自定義標籤實現

參考資料 dubbo對spring自定義標籤的擴充套件的實現 spring官方文件 42.1中,介紹了如何自定義spring標籤,步驟如下 1 編寫乙個xml schema描述您的自定義元素 2 編寫自定義命名空間處理程式實現,實現namespackhandler介面 3 編寫乙個或多個自定義的be...