Spring自定义标签

在xml配置的方式中,经常看到一些框架自定义的标签,看起来很高级。其中要实现,很简单。

声明自己的schema

这是第一步,首先为自己的组件定义合适的xml schema。这部分需要xsd的知识,不是本文重点,不做展开。

定义好自己的schema之后,放在某个目录下,通常是META-INF/下。

配置

在resource/META-INF下增加两个文件,就是spring.handlers和spring.schemas。
spring.schemas用于配置xml命名空间和第一步创建的xsd文件

http\://xxx.com/schema/test.xsd=META-INF/test.xsd

而spring.handlers则是为标签(命名空间)添加解析器的。

http\://xxx.com/schema/test=com.xxx.xxxxx.TestHandler

解析器的作用就是将这段自定义xml转换成BeanDefinition,并且注册到BeanFactory上,因此这里的标签解析器,其实是一个BeanDefinitionParser 。
在自定义标签的实践中,可以通过NamespaceHandlerSupport 而不是直接使用BeanDefinitionParser ,来获得一些便捷。

生成BeanDefinition

反正根据自己需要,创建合适的BeanDefinition就好,没啥好说的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者: 一字马胡 转载标志 【2017-11-17】 更新日志 导入 Spring框架的一大强大之处就是框架的设...
    一字马胡阅读 9,175评论 0 20
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,403评论 19 139
  • 第一步:编写xsd文件 第二步:编写spring.schemas文件 红框中的内容是自定义的内容。但是这两个值是一...
    若尘0328阅读 2,299评论 0 0
  • 在读elastic-job过程中,发现使用了spring的自定义标签,当时没有细看实现原理,只关心了elastic...
    一滴水的坚持阅读 6,738评论 0 2
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,054评论 6 342