首页 > 代码库 > spring中增加自定义配置支持

spring中增加自定义配置支持

spring.schemas

在使用spring时,我们会首先编写spring的配置文件,在配置文件中,我们除了使用基本的命名空间http://www.springframework.org/schema/beans之外,我们还会用到多种其他命名空间,每一种命名空间还有一个对应的xsd文档。

比如springmvc的http://www.springframework.org/schema/mvc对应http://www.springframework.org/schema/mvc/spring-mvc.xsd,aop的http://www.springframework.org/schema/aop对应http://www.springframework.org/schema/aop/spring-aop.xsd。

技术分享

图为spring-mvc的命名空间和xsd文档的映射关系。

命名空间和xsd的映射关系保存在classpath或者jar包的META-INF/spring.schemas文件中。此文件会在多个jar包中存在,可通过ClassLoader.getSystemResources方法,获取所有文件的URL信息。

spring.handlers

命名空间中元素的处理,通过何种handler处理,META-INF/spring.handlers文件中保存了其映射关系。当spring在解析配置文件时,碰到了指定命名空间的元素,便使用对应的handler进行元素的处理。

技术分享

图为spring-mvc的命名空间和handler的映射关系。

handler

在handler中主要定义,元素的BeanDefinitionParser,通过BeanDefinitionParser处理元素,组成一个BeanDefinition,并保存到IOC中。

技术分享

自定义实现

技术分享

技术分享

技术分享

技术分享

 技术分享

技术分享

 在启动spring时,会发现控制台打印出了配置文件中的name值。

 

spring中增加自定义配置支持