您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關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文件操作有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。