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就好,没啥好说的。

你可能感兴趣的:(Spring自定义标签)