前期条件:

启动Zookeeper、Dubbo-Monitor-Simple、Dubbo-Admin:https://blog.csdn.net/qq_37598011/article/details/86685467

基础组件信息:https://blog.csdn.net/qq_37598011/article/details/86698788

使用注解配置整合

服务提供者

pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.2.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><groupId>com.dubbo</groupId><artifactId>boot-service-consumer</artifactId><version>0.0.1-SNAPSHOT</version><name>boot-service-consumer</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version></dependency><dependency><groupId>com.dubbo</groupId><artifactId>basics-interface</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

其中

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

这块依赖是核心,需要注意的是如果springboot的版本是2.0以后的则<version>0.2.0</version>,否则则是0.1.0

参考:https://github.com/apache/incubator-dubbo-spring-boot-project

     <dependency><groupId>com.dubbo</groupId><artifactId>basics-interface</artifactId><version>0.0.1-SNAPSHOT</version></dependency>

这块请参照上篇博客……

启动类

在启动类上添加@EnableDubbo注解

application.properties如下:

#The service name
dubbo.application.name=boot-service-provider#registration center
dubbo.registry.address=127.0.0.1:2181
dubbo.registry.protocol=zookeeper#communication rule
dubbo.protocol.name=dubbo
dubbo.protocol.port=22288#The monitoring center
dubbo.monitor.protocol=registry
#dubbo.scan.base-packages=com.dubbo.basics_interface

这里少了在原先xml配置中的第四步:

此时与dubbo跟springboot进行整合后,其用户实现接口改为了:

package com.service.provider.service.impl;import java.util.Arrays;
import java.util.List;import org.springframework.stereotype.Component;import com.alibaba.dubbo.config.annotation.Service;
import com.dubbo.basics_interface.dto.User;
import com.dubbo.basics_interface.service.UserService;/*
* @author zzf
* @date 2019年1月29日 下午3:40:16
*/
@Component
@Service
public class UserServiceImpl implements UserService{public List<User> getUserAddressList(String userId) {// TODO Auto-generated method stubUser address1 = new User(1, "XXXXXXX1", "1", "小A", "88888888888", "Y");User address2 = new User(2, "XXXXXXX2", "2", "小B", "77777777777", "N");User address3 = new User(3, "XXXXXXX3", "3", "小C", "99999999999", "Y");return Arrays.asList(address1,address2,address3);}}

这里的@Service是Dubbo中的注解(com.alibaba.dubbo.config.annotation.Service)

启动

服务消费者

pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.2.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><groupId>com.dubbo</groupId><artifactId>boot-service-consumer</artifactId><version>0.0.1-SNAPSHOT</version><name>boot-service-consumer</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version></dependency><dependency><groupId>com.dubbo</groupId><artifactId>basics-interface</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

启动类

在启动类上添加@EnableDubbo注解

application.properties文件

server.port=8081#The service name
dubbo.application.name=boot-service-consumer#registration center
dubbo.registry.address=zookeeper://127.0.0.1:2181#The monitoring center
dubbo.monitor.protocol=registry

订单服务实现类

package com.service.consumer.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.alibaba.dubbo.config.annotation.Reference;
import com.dubbo.basics_interface.dto.User;
import com.dubbo.basics_interface.service.OrderService;
import com.dubbo.basics_interface.service.UserService;/*
* @author zzf
* @date 2019年1月29日 下午3:11:42
*/
@Service
public class OrderServiceImpl implements OrderService{//    @Autowired@ReferenceUserService userService;public List<User> initOrder(String userId) {// TODO Auto-generated method stubSystem.out.println("用户id:"+userId);//1、查询用户的收货地址List<User> addressList = userService.getUserAddressList(userId);for (User userAddress : addressList) {System.out.println(userAddress);}return addressList;}}

原先在consumer.xml中的调用的远程服务的接口,生成远程服务代理的部分为:

此时在SpringBoot与Dubbo整合中通过@Reference来实现……

最后控制器代码如下:

package com.service.consumer.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import com.dubbo.basics_interface.dto.User;
import com.dubbo.basics_interface.service.OrderService;/*
* @author zzf
* @date 2019年1月30日 下午3:04:45
*/
@RestController
public class DemoController {@AutowiredOrderService orderService;@GetMapping("/demo")public List<User> demo(String id) {return orderService.initOrder(id);}}

启动

测试:

在监控台可以看到调用的信息:

OK~

SpringBoot+Dubbo整合(一)相关推荐

  1. SpringBoot+Dubbo整合

    说明: 由于此文章是博主2017年学习时写的文章,项目dubbo版本过低,新项目不应该继续采用此版本.阿里巴巴已经将dubbo重新维护并捐给Apache开源组织,新起了比较新版本的项目整合.学习整合的 ...

  2. springBoot+dubbo整合Redis - 脚手架系列(三)

    1.介绍 Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库. Redis 可以存储键和五种不同 ...

  3. Spring-Boot Dubbo 整合

    为什么要用dubbo 服务治理框架 服务的监控 服务的注册发现 服务的通信 服务的容错 服务的负载均衡 dubbo支持的注册中心 consul zookeeper eureka redis etcd ...

  4. dubbo整合springboot图解版(九)

    点击Next,直接点完成! 创建完成! 将之前dubbo-provider的实现复制到新的boot-dubbo-provider相应目录下: 在pom.xml中添加依赖的dubbo-interface ...

  5. SpringBoot+ Dubbo + Mybatis + Nacos +Seata整合来实现Dubbo分布式事务

    作者:请叫我东子 https://blog.csdn.net/u010046908/article/details/100536439 1.简介"本文主要介绍SpringBoot2.1.5 ...

  6. SpringBoot+Dubbo+环信(即时通信)整合

    SpringBoot+Dubbo+环信(即时通信)整合 1.注册环信账号 官网:https://www.easemob.com/ 稳定健壮,消息必达,亿级并发的即时通讯云 2. 了解平台架构 文档地址 ...

  7. dubbo yml配置_利用springboot+dubbo,构建分布式微服务,全程注解开发(一)

    随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 一.先来一张图 说起 Dubbo,相信大家都不 ...

  8. Dubbo 整合 Pinpoint 做分布式服务请求跟踪

    在使用Dubbo进行服务化或者整合应用后,假设某个服务后台日志显示有异常,这个服务又被多个应用调用的情况下,我们通常很难判断是哪个应用调用的,问题的起因是什么,因此我们需要一套分布式跟踪系统来快速定位 ...

  9. Dubbo基础专题——第四章(Dubbo整合Nacos分析细节点)

    应广大的读者要求,也是公司目前需要一些支持,我就自己亲身搭建一个Springboot+nacos+dubbo的框架和项目,并演示dubbo面对一些系统的 业务场合,应该怎么去做支持,文章中我会先贴出代 ...

最新文章

  1. 英语什么意思_“你什么意思”用英语怎么说?千万不要说成“What#39;s your meaning?”...
  2. 最详细的docker安装rocketMQ教程来了
  3. ROS学习笔记四:用C++编写ROS发布与订阅
  4. java 斐波那契编程_Java实现Fibonacci(斐波那契)取余的示例代码
  5. Python批量修改Word文档中特定关键字的颜色
  6. NOIP2015DAY2T2子串
  7. 网站安全系列:跨站脚本攻击XSS
  8. C# 正则匹配 电话号码 和 座机号
  9. Iframe和Frame中实现cookie跨域的方法(转载)
  10. 场景文字检测OD与字符识别OCR概述
  11. 基于SSM的小区物业管理系统(附源码+论文)
  12. jemalloc 使用
  13. 收费系统对接微信公账号流程
  14. 简单几步即可速查电脑WiFi密码,无需任何工具!
  15. 关于poi处理word换行问题
  16. 小米手机显示无法连接服务器错误代码,来电转接出现连接问题或MMI码无效的解决方法...
  17. Caused by: java.sql.SQLException: connection holder is null
  18. 微信小程序--P2P消息收发模式(MQTT)
  19. JAVA 类声明中关键字public的作用
  20. Windows server 2022安装与激活

热门文章

  1. PMP证书含金量也太高了吧!在一线城市可享受多项福利~
  2. c语言 判断两个文件是否相同
  3. python新浪微博认证及发微
  4. bios 刷 灵耀14_华硕灵耀deluxe14怎么u盘启动 华硕灵耀deluxe14 u盘启动方法
  5. 什么是Windows中的svchost.exe?多个实例,高CPU,磁盘使用说明
  6. word内容里总是有双横线,如何删除
  7. JAVAFX 鼠标悬浮提示 Tooltip组件
  8. Haswell多线程技术揭秘:Intel TSX扩展
  9. oralce 跨用户访问表 同义词
  10. python openpyxl 操作excel 保留原格式