在Spring中的标签有默认标签和自定义标签两种,Spring提供了对Schema扩展的支持。
一、spring默认标签有四种:import、alias,bean和beans
Spring配置文件的解析入口:接口:BeanDefinitionReader
与BeanDefinitionDocumentReader
实现类:XmlBeanDefinitionReader
、DefaultBeanDefinitionDocumentReader
二、spring自定义标签
自定义标签可以说是spring提供的最大、最强的Hook(钩子),通俗的讲就是给后续小伙伴开发组件,提供一个标准公共可拔插”接口”,大家可以理解为手机充电器的工业标准口,为了方便各个充电器生产厂家生产,而制定的标准。
既然说自定义标签如此强大,我们在哪里应用的呢? 我们知道spring发展越来越强大,但核心的组件只有spring-core和spring-beans,那么有些人会问我们经常用的context,aop,tx不是吗?对的,这些都是在核心上做的扩展,而这些扩展恰恰是通过自定义标签实现扩展的,还有一些公共开源组件amq,redis,dubbo等等,他们都利用了自定义标签来扩展,使得spring容器的功能越发强大。
* [1] 设计配置属性和JavaBean
* [2] 编写XSD文件
* [3] 编写NamespaceHandler和BeanDefinitionParser完成解析工作
* [4] 编写spring.handlers和spring.schemas串联起所有部件
* [5] 在Bean文件中应用
位置如图:
XSD文件:
spring.handlers:
spring.schemas:
标签应用:
标签解析:
部分内容参考:https://blog.csdn.net/zzg1229059735/article/details/82669955
原文:https://www.cnblogs.com/fangyanr/p/14179985.html