当前位置: 移动技术网 > IT编程>开发语言>Java > springboot集成dubbo注解版的示例代码

springboot集成dubbo注解版的示例代码

2019年07月19日  | 移动技术网IT编程  | 我要评论

工作中用springboot搭建项目,用dubbo做远程调用。springboot提倡注解配置和java配置,本文是基于dubbo最新版本2.6.3,使用注解方式的示例。

本文假定你已经有springboot和dubbo的使用经验。

dubbo简介

dubbo是阿里巴巴开源的分布式服务框架,一般使用dubbo的rpc调用。但2016年停止维护,现在使用的2.8.4版本其实是当当维护的dubbox。2017年8月阿里又重启维护dubbo,并从2.5.7版本开始支持注解配置。

准备

此示例使用gradle构建,关于gradle的安装配置,请参考。

zookeeper作为dubbo服务发现的基础组件,关于zookeeper的安装启动,请参考。

项目结构如下

springboot-dubbo
├─settings.gradle
├─build.gradle
├─springboot-dubbo-api
│ │─build.gradle
│ └─src
│   └─main
│     └─java
│       └─org
│         └─aaron
│           └─springboot
│             └─dubbo
│               └─api
│                 demoservice.java
├─springboot-dubbo-consumer
│ │─build.gradle
│ └─src
│   └─main
│     ├─java
│     │ └─org
│     │   └─aaron
│     │     └─springboot
│     │       └─dubbo
│     │         └─consumer
│     │           democontroller.java
│     │           dubboconfiguration.java
│     │           dubboconsumerapplication.java
│     │             
│     └─resources
│        application.yml
└─springboot-dubbo-provider
  │─build.gradle
  └─src
    └─main
      ├─java
      │ └─org
      │   └─aaron
      │     └─springboot
      │       └─dubbo
      │         └─provider
      │           demoserviceimpl.java
      │           dubboconfiguration.java
      │           dubboproviderapplication.java
      │             
      └─resources
        application.yml

引入外部依赖

  compile('com.alibaba:dubbo:2.6.3')
  compile('org.apache.zookeeper:zookeeper:3.4.9')
  compile('org.apache.curator:curator-framework:4.0.0')
  compile('org.springframework.boot:spring-boot-starter-web')

配置

1.生产者dubbo配置

@configuration
public class dubboconfiguration {

  @bean
  public registryconfig registryconfig() {
    registryconfig registryconfig = new registryconfig();
    registryconfig.setaddress("zookeeper://127.0.0.1:2181");
    registryconfig.setclient("curator");
    return registryconfig;
  }

  @bean
  public applicationconfig applicationconfig() {
    applicationconfig applicationconfig = new applicationconfig();
    applicationconfig.setname("sprintboot-dubbo-provider");
    return applicationconfig;
  }

  @bean
  public protocolconfig protocolconfig() {
    protocolconfig protocolconfig = new protocolconfig();
    protocolconfig.setport(12021);
    protocolconfig.setname("dubbo");
    return protocolconfig;
  }
}

2.消费者dubbo配置

@configuration
public class dubboconfiguration {

  @bean
  public registryconfig registryconfig() {
    registryconfig registryconfig = new registryconfig();
    registryconfig.setaddress("zookeeper://127.0.0.1:2181");
    registryconfig.setclient("curator");
    return registryconfig;
  }

  @bean
  public applicationconfig applicationconfig() {
    applicationconfig applicationconfig = new applicationconfig();
    applicationconfig.setname("sprintboot-dubbo-consumber");
    return applicationconfig;
  }

  @bean
  public consumerconfig consumerconfig() {
    consumerconfig consumerconfig = new consumerconfig();
    consumerconfig.settimeout(3000);
    return consumerconfig;
  }
}

3.定义接口

public interface demoservice {
  string sayhello();
}

4.生产者实现接口

import com.alibaba.dubbo.config.annotation.service;

@component
@service(interfaceclass = demoservice.class, version = "1.0")
public class demoserviceimpl implements demoservice {

  @override
  public string sayhello() {
    return "hello springboot dubbo";
  }
}

5.消费者调用接口

import com.alibaba.dubbo.config.annotation.reference;

@restcontroller
public class democontroller {

  @reference(interfaceclass = demoservice.class, version = "1.0")
  private demoservice demoservice;

  @requestmapping("/hello")
  public string sayhello() {
    return demoservice.sayhello();
  }
}

启动

  1. 本地启动zookeeper
  2. 依次启动springboot-dubbo-provider,springboot-dubbo-consumer
  3. 浏览器访问 localhost:8080/hello
  4. 看到返回'hello springboot dubbo' 即表示调用成功

其他

示例源码(github)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网