首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

spring的自定义标签都不会?你可能只学到了spring的皮毛

通常我们在applicationContext.xml文件中使用spring的标签时,会发现spring默认支持的只有5种,如图所示 ?...这个时候就需要引入命名空间,我们到spring-context-xxx.jar的META-INF目录下找到spring.schemas文件,找到文件中的 http\://www.springframework.org.../schema/context/spring-context.xsd=org/springframework/context/config/spring-context.xsd 然后在applicationContext.xml...,如:http://www.sue.sc.com/schema/mytag,如果命名空间为空,则直接返回,如果不为空,则根据命名空间,获取对应的NamespaceHandler,调用parse方法进行自定义标签的解析...如果找不到,读取META-INF/spring.handlers中的配置,然后通过反射实例化对象。

1.3K52
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring中的XML schema扩展机制

    前言 很久没有写关于 Spring 的文章了,最近在系统梳理 Dubbo 代码的过程中发现了 XML schema 这个被遗漏的知识点。...这便牵扯出了今天的主题:Spring 对 XML schema 的扩展支持。 自定义 XML 扩展 为了搞懂 Spring 的 XML 扩展机制,最直接的方式便是实现一个自定义的扩展。...之后,还需要一个 NamespaceHandler 来帮助 Spring 解析 XML 中不同命名空间的各类元素。...NamespaceHandler 来处理,在今天的示例中,我们使用 KiritoNamespaceHandler 来解析 kirito 命名空间。...命名空间处理器的抽象实现,我粗略看了NamespaceHandler 的几个实现类,parse 和 decorate 方法可以完成元素节点的组装并通过 ParserContext 注册到 Ioc 容器中

    94520

    Spring源码初探-IOC(2)-Bean的初始化-自定义标签解析

    按一般的套路通常是先介绍在Spring体系下如何在XML配置文件中自定义标签,本文先介绍Spring对于自定义标签的解析过程,在知道了Spring怎么“读”XML配置之后,写其能“读懂”的配置就显得非常自然了...NamespaceHandler for XML schema namespace [" + namespaceUri + "]", ele); return null; } return...Spring的类的命名和方法命名基本可以等同于注释了,我们可能已经开始猜测每个NameSpaceUri会对应一个NamespaceHandler,然后NamespaceHandler会负责解析该NameSpace...中,Support意味助手,意思是告诉大家在自定义NameSpaceHandler时欢迎继承我,我会帮你做很多事情喔lol),顾名思义,一个命名空间下可以定义很多个不同名标签,首先要找到这个element...同时由于XML验证机制有两种DTD和XSD,这里采用XSD,所以需要按照要求编写XSD文件,同时按照spring的要求,要在META-INF/spring.schemas文件中指定schema文件的位置

    40830

    Spring中的XML schema扩展机制

    前言 很久没有写关于 Spring 的文章了,最近在系统梳理 Dubbo 代码的过程中发现了 XML schema 这个被遗漏的知识点。...这便牵扯出了今天的主题:Spring 对 XML schema 的扩展支持。 自定义 XML 扩展 为了搞懂 Spring 的 XML 扩展机制,最直接的方式便是实现一个自定义的扩展。...之后,还需要一个 NamespaceHandler 来帮助 Spring 解析 XML 中不同命名空间的各类元素。...NamespaceHandler 来处理,在今天的示例中,我们使用 KiritoNamespaceHandler 来解析 kirito 命名空间。...命名空间处理器的抽象实现,我粗略看了NamespaceHandler 的几个实现类,parse 和 decorate 方法可以完成元素节点的组装并通过 ParserContext 注册到 Ioc 容器中

    1.2K60

    【死磕 Spring】----- IOC 之解析自定义标签

    在该方法中,它会根据命名空间的不同调用不同的方法进行解析,如果是默认的命名空间,则调用 parseDefaultElement() 进行默认标签解析,否则调用 parseCustomElement()...NamespaceHandler for XML schema namespace [" + namespaceUri + "]", ele); return null;...this.readerContext.getNamespaceHandlerResolver().resolve(namespaceUri) getNamespaceHandlerResolver() 方法返回的命名空间的解析器...", err); } } } 首先调用 getHandlerMappings() 获取所有配置文件中的映射关系 handlerMappings ,该关系为 命名空间...,类路径>,然后根据命名空间 namespaceUri 从映射关系中获取相应的信息,如果为空或者已经初始化了就直接返回,否则根据反射对其进行初始化,同时调用其 init() 方法,最后将该 Handler

    63830

    Spring面试高频题如何:自定义XML schema 扩展

    /beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo...是怎样被Spring来识别的? 如果我们自己随便定义一个标签Spring是否能够识别?我们去翻翻Spring的官网发现这玩意其实就是Spring提供的 XML schema 的扩展支持。...XML schema 扩展机制是什么?这个也许好多人没听过: Spring 为基于 XML 构建的应用提供了一种扩展机制,用于定义和配置 Bean。...在这个地方的时候我们其实可以以版本号来进行命名,方便我们可以使用多个不同的版本,Spring-beans 就是这么玩的。...编写一个 NamespaceHandler resources/META-INF/spring.handlers resources/META-IN/spring.schemas 测试自定义schema

    64720

    ShardingSphere如何完成与Spring家族无缝整合的?

    ShardingSphere 实现两种系统集成机制: 命名空间(namespace)机制,通过扩展 Spring Schema 来实现与 Spring 框架的集成 编写自定义 starter 组件完成与...Spring Boot 的集成 1 基于命名空间集成 Spring 扩展性角度,基于 XML Schema 的扩展机制常见而实用。...1.1 基于命名空间集成 Spring 的通用开发流程 基于命名空间机制实现与 Spring 的整合,开发通常采用固定流程: 编写业务对象 编写XSD文件 编写BeanDefinitionParser实现类...ShardingSphere 自身的http://shardingsphere.apache.org/schema/shardingsphere/encrypt,该命名空间的定义位于与 sharding.xsd...ShardingSphere 中基于命名空间机制与 Spring 进行系统集成的实现过程介绍完。

    23400
    领券