zoukankan      html  css  js  c++  java
  • 以API 配置的方式来配置你的 Dubbo 应用

    package com.aswatson.csc.member.conf;
    
    import com.aswatson.csc.member.service.MemberCardService;
    import java.util.HashMap;
    import java.util.Map;
    import javax.annotation.PostConstruct;
    import org.apache.dubbo.config.ConfigCenterConfig;
    import org.apache.dubbo.config.RegistryConfig;
    import org.apache.dubbo.config.ServiceConfig;
    import org.apache.dubbo.rpc.model.ApplicationModel;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.stereotype.Component;
    
    /**
     * @Author Tim
     * @Date 2021/11/5 14:22
     */
    @Component
    public class DubboConfig {
    
        //可以动态配置memberCardService
        public DubboConfig(@Autowired ApplicationContext applicationContext, @Value("${dubbo.registry.protocol}") String protocol, @Value("${dubbo.registry.address}") String address)
            throws ClassNotFoundException {
    
            Object serviceObj = applicationContext.getBean("memberCardService");
            Class clazz = Class.forName("com.aswatson.csc.member.service.MemberCardService");
    
            RegistryConfig registryConfig = new RegistryConfig();
            registryConfig.setAddress(protocol + "://" + address);
            ServiceConfig service = new ServiceConfig();
            service.setApplication(ApplicationModel.getConfigManager().getApplicationOrElseThrow());
            service.setRegistry(registryConfig);
            service.setInterface(clazz);
            service.setRef(serviceObj);
            service.setVersion("1.0");
            service.export();
        }
    
         //测试写死memberCardService
    //    public DubboConfig(@Autowired ApplicationContext applicationContext, @Value("${dubbo.registry.protocol}") String protocol, @Value("${dubbo.registry.address}") String address) {
    //        RegistryConfig registryConfig1 = new RegistryConfig();
    //        registryConfig1.setAddress(protocol + "://" + address);
    //        ServiceConfig<MemberCardService> service = new ServiceConfig<MemberCardService>();
    //        service.setApplication(ApplicationModel.getConfigManager().getApplicationOrElseThrow());
    //        service.setRegistry(registryConfig1);
    //        service.setInterface(MemberCardService.class);
    //        service.setRef((MemberCardService) applicationContext.getBean("memberCardService"));
    //        service.setVersion("1.0");
    //        service.export();
    //    }
    
    }
    路在脚下
  • 相关阅读:
    [Vue warn]: Duplicate keys detected: '1'. This may cause an update error
    【转载】 github vue 高星项目
    前端面试题目汇总摘录(JS 基础篇)
    微信小程序-滚动Tab选项卡
    日期格式与标准时间之间互转
    git rebse 操作失误回退到上一步
    js判断数组中某个值是否存在
    git 不区分文件名大小写 解决办法
    React + antd 实现动态表单添加删除功能
    leetcode 重排链表
  • 原文地址:https://www.cnblogs.com/lgg20/p/15530432.html
Copyright © 2011-2022 走看看