美文网首页Spring
Spring可扩展Schema

Spring可扩展Schema

作者: 韭菜待收割 | 来源:发表于2018-10-31 15:20 被阅读3次

完成一个自定义配置一般需要以下步骤:

以dubbo为例
1、设计配置属性和JavaBean(ApplicationConfig)
2、编写XSD文件(dubbo.xsd)
3、编写NamespaceHandler(根据schema和节点名找到某个BeanDefinitionParser)
编写BeanDefinitionParser(完成解析工作)
4、编写spring.handlers文件

//表示当使用到名为"http://code.alibabatech.com/schema/dubbo"的schema引用时
//会通过com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler来完成解析
http\://code.alibabatech.com/schema/dubbo=com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler

编写spring.schemas文件串联起所有部件

//表示当使用到名为"http://code.alibabatech.com/schema/dubbo"的schema引用时
//载入xsd文件
http\://code.alibabatech.com/schema/dubbo/dubbo.xsd=META-INF/dubbo.xsd

5、在Bean文件中应用

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       //dubbo这里是命名
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd          
    http://code.alibabatech.com/schema/dubbo          
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="dubbo_provider_bean"  />

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" protocol="registry"/>

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.xmy.dubbo.service.DubboProviderBeanService" ref="dubboProviderBeanService" version="dev_bean"/>

    <!-- 和本地bean一样实现服务-->
    <bean id="dubboProviderBeanService" class="com.xmy.dubbo.service.impl.DubboProviderBeanServiceImpl" />

</beans>

基于Spring可扩展Schema提供自定义配置支持

相关文章

网友评论

    本文标题:Spring可扩展Schema

    本文链接:https://www.haomeiwen.com/subject/wsyatqtx.html