在不少状况下,咱们须要为系统提供可配置化支持,简单的作法能够直接基于spring的标准Bean来配置,但配置较为复杂或者须要更多丰富控制的时候,会显得很是笨拙。通常的作法会用原生态的方式去解析定义好的xml文件,而后转化为配置对象,这种方式固然能够解决全部问题,但实现起来比较繁琐,特别是是在配置很是复杂的时候,解析工做是一个不得不考虑的负担。Spring提供了可扩展Schema的支持,这是一个不错的折中方案,完成一个自定义配置通常须要如下步骤: git
设计配置属性和JavaBean github
编写XSD文件 spring
编写NamespaceHandler和BeanDefinitionParser完成解析工做 mvc
编写spring.handlers和spring.schemas串联起全部部件 app
在Bean文件中应用 ide
Spring 2.5在2.0的基于Schema的Bean配置的基础之上,再增长了扩展XML配置的机制。经过该机制,咱们能够编写本身的Schema,并根据自定义的Schema用自定的标签配置Bean。spa
源码设计
工程目录:orm
pom.xml配置xml
people实体类,也能够理解为bean
PeopleBeanDefinitionParser解析bean
MyNamespaceHandler
xsd文件内容
run:
自定义spring schema demo搞定
源码下载:
https://github.com/sunmutian/springmvc4tian/tree/master/custom-spring