专栏首页学习笔记持续记录中...Dubbo与SpringBoot整合的三种方式(12)

Dubbo与SpringBoot整合的三种方式(12)

第1种方式:

  1. 在pom.xml中注入dubbo-starter依赖;
  2. 在application.properties配置属性;
  3. 在服务提供方的接口实现使用@service暴露服务,在服务消费方使用@Reference引用服务;
  4. 同时要注意的是使用@EnableDubbo来开启基于注解的dubbo功能

第2种方式:

  1. 保留dubbo xml配置文件;
  2. 导入dubbo-starter依赖;
  3. 使用@ImportResource导入dubbo的配置文件即可 (在原来的provider.xml中写并保留)
  4. 同时不需要使用@service来暴露服务了
@ImportResource(locations="classpath:provider.xml)

第3种方式:

  1. 使用注解API的方式,将每一个组件手动创建到容器中,让dubbo来扫描其他的组件,编写配置类
  2. 编写配置类
@Configuration
public class MyDubboConfig {
    @Bean
    public ApplicationConfig applicationConfig() {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setName("boot-user-service-provider");
        return applicationConfig;
    }
    
    //<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
    @Bean
    public RegistryConfig registryConfig() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setProtocol("zookeeper");
        registryConfig.setAddress("127.0.0.1:2181");
        return registryConfig;
    }
    
    //<dubbo:protocol name="dubbo" port="20882"></dubbo:protocol>
    @Bean
    public ProtocolConfig protocolConfig() {
        ProtocolConfig protocolConfig = new ProtocolConfig();
        protocolConfig.setName("dubbo");
        protocolConfig.setPort(20882);
        return protocolConfig;
    }
    
    /**
     *<dubbo:service interface="com.atguigu.gmall.service.UserService" 
        ref="userServiceImpl01" timeout="1000" version="1.0.0">
        <dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method>
    </dubbo:service>
     */
    @Bean
    public ServiceConfig<UserService> userServiceConfig(UserService userService){
        ServiceConfig<UserService> serviceConfig = new ServiceConfig<>();
        serviceConfig.setInterface(UserService.class);
        serviceConfig.setRef(userService);
        serviceConfig.setVersion("1.0.0");
        
        //配置每一个method的信息
        MethodConfig methodConfig = new MethodConfig();
        methodConfig.setName("getUserAddressList");
        methodConfig.setTimeout(1000);
        
        //将method的设置关联到service配置中
        List<MethodConfig> methods = new ArrayList<>();
        methods.add(methodConfig);
        serviceConfig.setMethods(methods);  
        //ProviderConfig
        //MonitorConfig
        return serviceConfig;
    }
}

3.主配置类中规定扫描类的路径,使用@EnableDubbo(scanBasePackages="com.sangyu.gmall")

4.实现类通过@service暴露服务

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Dubbo属性覆盖策略(10)

    设置dubbo.protocol.port=20880,如果虚拟机参数传入优先级最高,如果虚拟机参数没有传入,XML和Spring boot的Applicati...

    桑鱼
  • Dubbo安装监控中心-Dubbo-Monitor-simple(8)

    dubbo.registry.address: 注册中心的地址及端口号 dubbo.protocol.port:与其他服务与监控中心通信的端口号 dubbo...

    桑鱼
  • mac安装dubbo-admin管理控制台(6)

    dubbo本身并不是一个服务软件。它其实就是一个jar包能够帮你的java程序连接到zookeeper,并利用zookeeper消费、提供服务。所以你不用在Li...

    桑鱼
  • Dubbo03【管理控制台和监控中心搭建】

      要搭建管理控制台和监控中心我们首先需要下载dubbo的源码并编译,首先去GitHub上下载Dubbo源码: https://github.com/apac...

    用户4919348
  • dubbo系列(二)——dubbo+zookeeper+spring注解方式集成

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    逝兮诚
  • spring|springboot集成dubbo

    现在国内中小公司,远程调用基本上用的都是dubbo ,当然小刀的公司也不例外,我们以前用的是dubbo 2.4.x的版本,虽然也能使用,但是本着新项目新技术的追...

    微笑的小小刀
  • SpringBoot之Dubbox

    上次springboot集成dubbo写过一个简单的demo调用的方式,由于spring版本的问题,这次使用duboox,完全基于注解的方式。

    王念博客
  • springboot+mybatis+dubbo+aop日志第二篇

    本篇主要介绍dubbo-demo-api接口层和dubbo-demo-service层,以及如何通过dubbo把服务发布出去,介绍代码前,咱们先来回顾一下整个d...

    写代码的猿
  • 【Dubbo篇】--Dubbo框架的使用

    Provider: 提供者.发布服务的项目. Registry: 注册中心.所有提供者必须去注册中心注册自己所有能发布的服务. Consumer: 消费者.调用...

    LhWorld哥陪你聊算法
  • SpringBoot系列之集成Dubbo的方式

    本博客介绍Springboot框架集成Dubbo实现微服务的3种常用方式,对于Dubbo知识不是很熟悉的,请先学习我上一篇博客:SpringBoot系列之集成D...

    SmileNicky

扫码关注云+社区

领取腾讯云代金券