SpringBoot+Dubbo整合(一)
前期条件:
启动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整合(一)相关推荐
- SpringBoot+Dubbo整合
说明: 由于此文章是博主2017年学习时写的文章,项目dubbo版本过低,新项目不应该继续采用此版本.阿里巴巴已经将dubbo重新维护并捐给Apache开源组织,新起了比较新版本的项目整合.学习整合的 ...
- springBoot+dubbo整合Redis - 脚手架系列(三)
1.介绍 Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库. Redis 可以存储键和五种不同 ...
- Spring-Boot Dubbo 整合
为什么要用dubbo 服务治理框架 服务的监控 服务的注册发现 服务的通信 服务的容错 服务的负载均衡 dubbo支持的注册中心 consul zookeeper eureka redis etcd ...
- dubbo整合springboot图解版(九)
点击Next,直接点完成! 创建完成! 将之前dubbo-provider的实现复制到新的boot-dubbo-provider相应目录下: 在pom.xml中添加依赖的dubbo-interface ...
- SpringBoot+ Dubbo + Mybatis + Nacos +Seata整合来实现Dubbo分布式事务
作者:请叫我东子 https://blog.csdn.net/u010046908/article/details/100536439 1.简介"本文主要介绍SpringBoot2.1.5 ...
- SpringBoot+Dubbo+环信(即时通信)整合
SpringBoot+Dubbo+环信(即时通信)整合 1.注册环信账号 官网:https://www.easemob.com/ 稳定健壮,消息必达,亿级并发的即时通讯云 2. 了解平台架构 文档地址 ...
- dubbo yml配置_利用springboot+dubbo,构建分布式微服务,全程注解开发(一)
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 一.先来一张图 说起 Dubbo,相信大家都不 ...
- Dubbo 整合 Pinpoint 做分布式服务请求跟踪
在使用Dubbo进行服务化或者整合应用后,假设某个服务后台日志显示有异常,这个服务又被多个应用调用的情况下,我们通常很难判断是哪个应用调用的,问题的起因是什么,因此我们需要一套分布式跟踪系统来快速定位 ...
- Dubbo基础专题——第四章(Dubbo整合Nacos分析细节点)
应广大的读者要求,也是公司目前需要一些支持,我就自己亲身搭建一个Springboot+nacos+dubbo的框架和项目,并演示dubbo面对一些系统的 业务场合,应该怎么去做支持,文章中我会先贴出代 ...
最新文章
- 英语什么意思_“你什么意思”用英语怎么说?千万不要说成“What#39;s your meaning?”...
- 最详细的docker安装rocketMQ教程来了
- ROS学习笔记四:用C++编写ROS发布与订阅
- java 斐波那契编程_Java实现Fibonacci(斐波那契)取余的示例代码
- Python批量修改Word文档中特定关键字的颜色
- NOIP2015DAY2T2子串
- 网站安全系列:跨站脚本攻击XSS
- C# 正则匹配 电话号码 和 座机号
- Iframe和Frame中实现cookie跨域的方法(转载)
- 场景文字检测OD与字符识别OCR概述
- 基于SSM的小区物业管理系统(附源码+论文)
- jemalloc 使用
- 收费系统对接微信公账号流程
- 简单几步即可速查电脑WiFi密码,无需任何工具!
- 关于poi处理word换行问题
- 小米手机显示无法连接服务器错误代码,来电转接出现连接问题或MMI码无效的解决方法...
- Caused by: java.sql.SQLException: connection holder is null
- 微信小程序--P2P消息收发模式(MQTT)
- JAVA 类声明中关键字public的作用
- Windows server 2022安装与激活