中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring中怎么自定義xsd文件操作

發布時間:2021-06-18 18:09:23 來源:億速云 閱讀:264 作者:Leah 欄目:大數據

今天就跟大家聊聊有關Spring中怎么自定義xsd文件操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1 設置html文件的語法格式xsd文件

根據POJO的屬性編寫xsd文件。

例如

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.zhangyh.com/schema/user"
        elementFormDefault="qualified">

    <element name="user">
        <complexType>
            <attribute name="id" type="string" />
            <attribute name="name" type="string" />
            <attribute name="email" type="string" />
        </complexType>
    </element>
</schema>

對應的POJO是

public class User {
    private String name;
    private String email;
		
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}

屬性的getter和setter方法不可缺少

可以使得User的屬性在xml中可以配置,如

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mytest="http://www.zhangyh.com/schema/user"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            classpath:com.zhangyh.xsd/schema/spring-beans-2.0.xsd
            http://www.zhangyh.com/schema/user
            http://www.zhangyh.com/schema/user.xsd">

    <mytest:user id="testBean"  name="aaa" email="bbb"/>

</beans>

mytest:是自定義的命名空間名 classpath:是本地xsd文件加載協議

2 實現BeanDefinitionParser接口和擴展類NamespaceHandlerSupport

擴展NamespaceHandlerSupport類:實現XML中的數據的手動加載到BeanDefinitionBuilder中

public class UserBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {

    protected Class getBeanClass(Element element){
        return User.class;
    }
    protected void doParse(Element element, BeanDefinitionBuilder bean) {
        String userName = element.getAttribute("name");
        String email = element.getAttribute("email");

        if(StringUtils.hasText(userName)) {
            bean.addPropertyValue("name", userName);
        }

        if (StringUtils.hasText(email)) {
            bean.addPropertyValue("email", email);
        }
    }
}

實現BeanDefinitionParser接口:手動注冊POJO的手動解析結果

public class MyNamespaceHandler extends NamespaceHandlerSupport {
    public void init() {
        registerBeanDefinitionParser("user",new UserBeanDefinitionParser());
    }
}

3 設置Spring.handlers和Spring.schemas文件

配置META-INF/Spring.handlers:

http\://www.zhangyh.com/schema/user=com.zhangyh.xsd.paser.MyNamespaceHandler

當引用http://www.zhangyh.com/schema/user時會使用MyNamespaceHandler解析引用對象

配置META-INF/Spring.schemas

http\://www.zhangyh.com/schema/user.xsd=com.zhangyh.xsd/schema/user.xsd

載入自定義xsd文件

看完上述內容,你們對Spring中怎么自定義xsd文件操作有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华蓥市| 墨江| 长寿区| 涿州市| 邯郸县| 云霄县| 华安县| 海林市| 历史| 拉萨市| 舞阳县| 内丘县| 永德县| 安阳县| 南宫市| 凤凰县| 东丽区| 桂林市| 镇巴县| 方山县| 梅河口市| 邓州市| 紫金县| 宜州市| 曲靖市| 裕民县| 甘孜| 麦盖提县| 满城县| 阿拉善左旗| 庄浪县| 广南县| 增城市| 肥东县| 雷波县| 德庆县| 夏津县| 米泉市| 宾阳县| 长兴县| 扎鲁特旗|