`

spring-扩展点-namespacehandler(Spring自定义标签)

阅读更多
在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但是对于一些常用组件,我们不希望通过每个项目时候的都通过配置bean实例,而是通过一个标签来简洁的实现此功能,比如:
<context:component-scan base-package="com.qunar.flight.nts.web"/>
或者  <mvc:default-servlet-handler/>


Spring提供了可扩展Schema的支持,这是一个不错的折中方案,完成一个自定义配置标签一般需要以下步骤:

设计配置属性和JavaBean
编写XSD文件
编写NamespaceHandler和BeanDefinitionParser完成解析工作
编写spring.handlers和spring.schemas串联起所有部件

附件是我实现的一个样例,欢迎参考学习~

注意:
1、xsd存放在classpath下,一般都放在META-INF目录下(本例就放在这个目录下)

2、spring提供了spring.handlers和spring.schemas这两个配置文件来完成这项工作,这两个文件需要我们自己编写并放入META-INF文件夹中,这两个文件的地址必须是META-INF/spring.handlers和META-INF/spring.schemas,spring会默认去载入它们。


0
2
分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.1.1. 使用BeanPostProcessor的Hello World示例 3.7.1.2. RequiredAnnotationBeanPostProcessor示例 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7....

    Spring源码总结.pdf

    理解这些核心知识点有助于深入理解Spring的工作原理,优化配置,以及实现自定义扩展。通过源码学习,开发者可以更好地掌握Spring如何管理和创建Bean,以及如何利用注解进行组件扫描,这对于解决复杂问题和提升性能...

    spring chm文档

    3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. 利用MessageSource实现国际化 ...

    Spring 2.0 开发参考手册

    3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. 利用MessageSource实现国际化 ...

    Spring中文帮助文档

    3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ...

    Spring API

    3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ...

    Dubbo源码解读

    4. **编写spring.handlers和spring.schemas**:这两个文件的作用是将Dubbo定义的标签和Spring的扩展点联系起来。在spring.handlers中,开发者可以指定特定的namespace对应的Handler类。而spring.schemas文件则指向了...

    Spring IoC容器实现的结构分析

    通过抽象类和钩子方法(如默认实现或空实现),提供了扩展点,允许子类定制行为;通过内部实现方法,将复杂逻辑封装,提高了代码的可读性和可维护性。 总之,Spring IoC容器的实现是一个复杂而精巧的设计,它通过一...

    springcustomtag:自定义bean的配置文件tag

    1. 创建一个自定义标签处理器(TagHandler):这个处理器类需要实现`org.springframework.beans.factory.xml.NamespaceHandler`接口,该接口定义了如何解析你的自定义标签。在这里,你需要定义`init()`方法初始化...

Global site tag (gtag.js) - Google Analytics