dubbo集成spring boot
spring boot肯定是现在用的做多的开发框架,而dubbo框架是最流行的rpc框架之一,整合springboot和dubbo的使用很有必要。本篇博客还是根据上一篇中的dubbo简单demo的简单示例来整合spring boot。(上一篇传送门:dubbo-demo)
依赖
因为是springboot项目,dubbo官方也提供了dubbo的starter。
1 | <!-- dubbo starter --> |
这里注意下spring boot的版本和dubbo-starter的版本映射关系,这里使用的是spring boot 2.1.3版本,用的是0.2版本的dubbo依赖,而1.x版本的spring boot框架则对应0.1.x版本的dubbo starter。
这里引入了starter之后也引入了之前在上一篇中的zk客户端依赖。
这里也遇到了idea新建maven module之后的一些坑,一直没办法加载对应的类,这里提示下可以尝试查看idea的maven配置,是不是把新加入的module勾选了ignore:
boot-provider
这里也是去先构造对应的服务提供者,提供一个用户地址的简单查询服务。但是spring boot多采用注解驱动和避免了很多繁琐的xml配置,所以这里我们去将dubbo的全局配置配置在application.properties文件中,而关于服务的暴露也是用注解暴露。
dubbo应用配置
1 | # 应用方信息 |
可以看到这里其实就是对应的之前普通spring项目中使用dubbo的provider.xml的标签配置。
这里要注意是在启动类上要加入@EnableDubbo注解开启spring boot对dubbo的支持。
服务的暴露
这里是用的@Service注解暴露服务,其实也是对应着dubbo-provider.xml中的dubbo:service标签,这里要注意是不要引入是spring的@Service注解。可以看到这个service注解中也有dubbo:service中对应的属性,比如这里写入的version版本信息。
1 | import com.alibaba.dubbo.config.annotation.Service; |
启动provider项目,就可以在dubbo-admin上看到注册到注册中心的服务。
boot-consumer
消费者端要配置大体和服务提供者端是一样的,也是用@Refernce注解来代替对应的dubbo:refernce标签。这里也要在启动类上去加入@EnableDubbo注解。
dubbo的配置
1 | # 应用方信息 |
这里的端口是8081是因为provider和consumer是两个spring bootmodule 都是启动类去启动的,这里测试在一台电脑上要是不同的端口。
引用暴露的服务
1 |
|
可以看到@Reference注解中也可对应dubbo:reference标签的属性,这里设置的超时时间和对应的版本。
简单controller测试
这里去写了一个简单的controller去测试spring-boot使用dubbo这个框架:
1 |
|