自从Dubbo支持SpringBoot后,Dubbo与Spring的整合变得更加的简单了,下面就是完整的步骤:

1. 引入依赖

<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>

2. 在dubbo-api中定义model和service接口,model就是普通的POJO,service接口的代码如下:

BounterService.java

package cn.bounter.dubbo.service;

import cn.bounter.dubbo.model.Bounter;

public interface BounterService {

    Bounter findById(long id);
}

3. 服务提供者实现接口并配置Dubbo

BounterServiceImpl.java

package cn.bounter.dubbo.service;

import java.util.Date;
import com.alibaba.dubbo.config.annotation.Service;
import cn.bounter.dubbo.model.Bounter; //声明为Dubbo服务
@Service
public class BounterServiceImpl implements BounterService { @Override
public Bounter findById(long id) {
//模拟访问数据库
return new Bounter().setId(1L).setName("simon").setCreateTime(new Date()).setCreateBy(1L);
} }

application.properties

## Application
server.port=28080 ## Dubbo
dubbo.application.name=dubbo-provider
dubbo.registry.address=zookeeper://47.98.151.249:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.scan.basePackages=cn.bounter

4. 服务消费者配置Dubbo并调用Dubbo服务

application.properties

# Application
server.port=18080 ## Dubbo
dubbo.application.name=dubbo-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.scan=cn.bounter

BounterController.java

package cn.bounter.dubbo.controller;

import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import com.alibaba.dubbo.config.annotation.Reference; import cn.bounter.dubbo.model.ResponseData;
import cn.bounter.dubbo.service.BounterService; @RestController
@CrossOrigin
@RequestMapping("/api/bounter")
public class BounterController { @Reference
private BounterService bounterService; @GetMapping("/{id}")
public ResponseData<?> get(@PathVariable Long id) {
return new ResponseData<>().success().data(bounterService.findById(id));
} }

这样当你依次启动dubbo-provider和dubbo-consumer之后,浏览器访问http://localhost:18080/api/bounter/1就可以看到效果了

需要完整代码的请移步我的Github: 
https://github.com/13babybear/bounter-springboot-dubbo

SpringBoot 整合 Dubbo 进行分布式开发的更多相关文章

  1. SpringBoot整合dubbo(yml格式配置)

    yml文件 如果只作为服务的消费者不用暴露端口号,扫描的包名根据自己service改 dubbo: application: name: springboot-dubbo-demo #应用名 regi ...

  2. Springboot整合Dubbo和Zookeeper

    Dubbo是一款由阿里巴巴开发的远程服务调用框架(RPC),其可以透明化的调用远程服务,就像调用本地服务一样简单.截至目前,Dubbo发布了基于Spring Boot构建的版本,版本号为0.2.0,这 ...

  3. springboot整合dubbo\zookeeper做注册中心

    springboot整合dubbo发布服务,zookeeper做注册中心.前期的安装zookeeper以及启动zookeeper集群就不说了. dubbo-admin-2.5.4.war:dubbo服 ...

  4. 【转】SpringBoot学习笔记(7) SpringBoot整合Dubbo(使用yml配置)

    http://blog.csdn.net/a67474506/article/details/61640548 Dubbo是什么东西我这里就不详细介绍了,自己可以去谷歌 SpringBoot整合Dub ...

  5. Springboot整合elasticsearch以及接口开发

    Springboot整合elasticsearch以及接口开发 搭建elasticsearch集群 搭建过程略(我这里用的是elasticsearch5.5.2版本) 写入测试数据 新建索引book( ...

  6. dubbo学习实践(4)之Springboot整合Dubbo及Hystrix服务熔断降级

    1. springboot整合dubbo 在provider端,添加maven引入,修改pom.xml文件 引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache ...

  7. springboot整合dubbo+zookeeper最新详细

    引入 最近和小伙伴做一个比赛,处于开发阶段,因为涉及的服务比较多,且服务需要分开部署在不同的服务器上,讨论之后,打算采用分布式来做,之前学习springboot的时候,部分章节涉及到了springbo ...

  8. Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!   “看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一 ...

  9. Spring Boot整合Dubbo使用及开发笔记

    一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...

随机推荐

  1. linux 下一些命令

    1. 后台执行命令 nohup  http://blog.csdn.net/liuyanfeier/article/details/62422742 2. 查看日志文件 格式:tailf logfil ...

  2. openstack搭建之-keystone配置(8)

    一. Base Node配置 mysql -uroot -proot CREATE DATABASE keystone GRANT ALL PRIVILEGES ON keystone.* to 'k ...

  3. java 虚拟机内存模型

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:[http://www.cnblogs.com/smyhvae/p/4748392.html] 文章来源:[http://www.cnblog ...

  4. 深入理解AMQP协议转载

    转自https://blog.csdn.net/weixin_37641832/article/details/83270778 文章目录 一.AMQP 是什么二.AMQP模型工作过程深入理解三.Ex ...

  5. DAY13、迭代器,生成器,枚举

    一.迭代器 1.通过迭代器取值的优缺点 优点:不依赖索引取值,完成取值 缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值) 2.可迭代对象 可迭代对象是有—iter—()方法的对象,调用该方法 ...

  6. Python——SQLite

    一.连接数据库 import sqlite3 conn = sqlite3.connect('数据库名.db') 二.插入 import sqlite3 conn = sqlite3.connect( ...

  7. Python学习之路——迭代器

    迭代器 # 通过迭代器取值优缺点: # 优点:不依赖索引,完成取值 # 缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值) 可迭代对象 ''' 可迭代对象: 有__iter__()方法的对象, ...

  8. python控制台输出带颜色的文字方法

    #格式: 设置颜色开始 :\033[显示方式;前景色;背景色m   注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个:另外由于表示三个参数不同含义的数值都是唯一的没有 ...

  9. Unity3d中如何查找一个脚本被挂在那些预设上面?

    用一个脚本函数可以获取到选择的脚本文件被哪些预设和场景引用 [MenuItem("Assets/Tool/GetReference")] static void GetRefere ...

  10. JS类型

    1.查看类型 可以使用 typeof 操作符来检测变量的数据类型. typeof "John" // 返回 string typeof 3.14 // 返回 number type ...