开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门:Dubbo 与 SpringBoot 整合】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/624/detail/9464
Dubbo 与 SpringBoot 整合
内容介绍:
一、创建 Spring boot 应用,provider 和 consumer
二、配置服务提供者
三、配置服务消费者
前面以普通的 Spring 配置文件的方式配置使用了 dubbo,在一般的 ssm 项目里,可将这些配置放在 Spring 配置文件中使用。
一、创建两个 Spring boot 应用,一个是 provider,一个是 consumer
右键创建一个 Spring Starter Project,第一个名称 Name 是 boot-user-service-provider, Package 是 com.atguigu.gmal,点击下一步不用选中任何功能模块,就是一个普通的应用,创建出来后将服务的实现复制 boot 工程里,要实现 UserService,在 boot 工程里依赖一下通用的接口,依赖 gmail interface,这是服务的提供者。
同样创建一个服务的消费者,名称 name 为 boot-order-service-consumer,消费者创建为 web 工程,以 web 的方式进行测试,把消费者通用的 interface 依赖进来,即 gmail interface,把之前写的实现复制过来,复制了实现类。
其次在那 name 上写 controller,假设消费者里有控制器,名称为 OrderController,作用是查询。
代码为@controller
//注解
public class OrderController{
@Autowired
OrderService orderService;
@ResopnseBody
@Request Mapping(“/initOrder”)
publicListnitOrder(@RequestParam(“uid”)String userId)
return orderService.initOrder(userId);
//返回订单进行查询
我们将用 UserService 拿到所有的订单内容,把订单内容返回,把 orderService 重新改成List<UserAddress>,
代码为public List<UserAddress> initOrder (String userId);
把返回的实现改成 List<User Address>。
OrderService 调用 USerService,直接返回 return addressList。
二、配置服务提供者
(1)、导入依赖
1)、导入 dubbo-starter
在 dubbo 项目主页,打开 Dubbo Spring Boot 的整合,导入
<dependency>
<groupId>com. alibaba. boot</groupId>
<artifactId>dubbo- spring- boot starter</artifactId>
<version>0.2.0</version>
</dependency>
(此依赖放入 user-Service-Provider 中)
注意 strater 版本适配:
Spring Boot 为1.5.X 版本的,versions 用0.1.1版本。
点开 dubbo-spring-boot-starter,同时导入了 dubbo2.6.2版本,zookeeper3.4.9版本以及操作 zookeeper 的客户端。
2)、导入 dubbo 的其他依赖
(2)、进行配置:
在 application.properties 中进行配置
1)、应用的名字 dubbo.application.name=user-service-provider
2)、注册中心地址 dubbo.registry.address=127.0.0.1:2181
3)、注册中心协议 dubbo.registry.protocol=zookeeper
4)、通信协议 dubbo.protocol.name=dubbo dubbo.protocol.port=20880
5)、连接监控中心 dubbo.monitor.protocol=registry
暴露服务中,由于配置的服务多,只需要在暴露的服务上标上注解,即@com.alibaba.dubbo.config.annotation,Service,
//暴露服务
在主程序中加上@EnableDubbo
//开启基于注解的 dubbo 功能
启动服务后,就会按照配置注册到指定的配置中心。
(3)、进行测试
启动,刷新管理控制台,服务应用数为2,点开,有 user-service-provider。
三、配置服务消费者
(1)、引入 dubbo-strater
在 orderService 中,引入代码为:
<dependency>
<groupId>com. alibaba. boot</groupId><artifactId>dubbo- spring- boot starter</artifactId><version>0.2.0</version>
</dependency>
(2)、进行配置
在 application.properties 中进行配置
1)、应用名字:dubbo.application.name=boot-order-service-consumer
2)、注册中心:dubbo.registry.address=zookeeper://127.0.0.1:2181
3)、监控:dubbo.monitor.protocol=registry
4)、端口号:server.port=8081
在 orderServiceImpl 中,不用@Autowired 自动注入
UserService,dubbo 为提供了注解,即@Reference 远程引用 OrderService 服务。
Dubbo注解功能@EnableDubbo
启动消费者,8081已启动,刷新注册中心,显示 service-consumer,访问local host8081/initOrder?uid=1,可查出两个用户的地址信息,整合成功。