今天就跟大家聊聊有关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文件操作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/3711676/blog/3117763