Dubbo学习(三)——服务分组

    服务分组与多版本控制的使用方式几乎是相同的,只要将 version 替换为 group 即可。 但使用目的不同。使用版本控制的目的是为了升级,将原有老版本替换掉,将来不再提供老 版本的服务,所以不同版本间不能出现相互调用。而分组的目的则不同,其也是针对相同接 口,给出了多种实现类。但不同的是,这些不同实现并没有谁替换掉谁的意思,是针对不同 需求,或针对不同功能模块所给出的不同实现。这些实现所提供的服务是并存的,所以它们 间可以出现相互调用关系。例如,对于支付服务的实现,可以有微信支付实现与支付宝支付 实现等。 
1、创建提供者

(1)定义两个接口实现类

public class WeixinServiceImpl implements SomeService {
    @Override
    public String hello(String name) {
        System.out.println("使用【微信】付款");
        return "WeixinServiceImpl";
    }
}
public class ZhifubaoServiceImpl implements SomeService {
    @Override
    public String hello(String name) {
        System.out.println("使用【支付宝】付款");
        return "ZhifubaoServiceImpl";
    }
}

(2)修改配置文件

2、创建消费者

(1)修改配置文件

(2)修改消费者类

public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("spring-consumer.xml");

        // 使用微信支付
        SomeService weixinService = (SomeService) ac.getBean("weixin");
        String weixin = weixinService.hello("China");
        System.out.println(weixin);

        // 使用支付宝支付
        SomeService zhifubaoService = (SomeService) ac.getBean("zhifubao");
        String zhifubao = zhifubaoService.hello("China");
        System.out.println(zhifubao);
    }

3、运行结果

客户端代码会根据定义的dubbo的id找到对应分组的实现

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页