为了账号安全,请及时绑定邮箱和手机立即绑定

Dubbo原理解析-与spring融合

标签:
Premiere

Spring中bean的定义可以通过编程,可以定义在properties文件,也可以定义在通过xml文件中,用的最多的是通过xml形式,由于xml格式具有很好的自说明便于编写及维护。对于xml的文档结构、数据定义及格式验证可以通过DTD和Schema, 在spring2.0之前采用的是DTD,在spring2.0之后采用Schema。使用Schema方式使得spring更加便于与第三方进行集成以及第三方可以提供更简单更便于使用的个性化配置方式。对于XmlSchema具体知识这里不做介绍,但是Schema中有个重要的概念命名空间(namespace)必须要提一下,spring就是利用它来做第三方自定配置格式的解析的,在spring中aop, transaction的就是给第三一个实现自己自定义配置很好实例。


webp

如上图:xmlns=http://www.springframework.org/schema/beans是默认命名空间

xmlns:aop=http://www.springframework.org/schema/aop 定义的aop的命名空间

xmlns:tx="http://www.springframework.org/schema/tx" 定义了事物的命名空间

各命名空间下的格式定义文件通过xsi:schemaLocation来指定。

本文档不是讲解spring的,所以下面只是简略的来讲解spring如果通过schema方式来解析配置文件的。

类DefaultBeanDefinitionDocumentReader会把spring的xml配置文件当做一个文档格式来读取


webp


则走解析自定义元素流程。根据命名空间去获取具体的处理器NamespaceHandler


webp

DefaultNamespaceHandlerResolver类传了key为namespaceUri,在类中有个Map存储类所有的自定义NamespaceHandler,这个Map中的值是通过工具类PropertiesLoaderUtils加载所有在”META-INF/spring.handlers”中的值


webp




作者:架构师springboot
链接:https://www.jianshu.com/p/13b047942548


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消