最近学习springBoot整合dubbo过程中遇到了一些问题,在此记录一下,以作备忘。
至于整合教程网上一堆,这里不做重复搬运。
大概描述一下步骤

  1. 如果使用zookeeper作为注册中心,需要先安装zookeeper并启动
  2. 下载dubbo管理控制台(我在网上找的一个,提取码:ddoc),下载后解压,
  3. 修改dubbo-admin项目中application.properties文件中dubbo.registry.address地址后使用maven打包,
    4. 进入target目录下使用java -jar XXX.jar执行jar包,然后访问"http://localhost:7001/"用户名:root,密码:root。即可。如下图:

dubbo与springboot兼容版本 dubbo整合springboot_spring


4. 然后新建springBoot项目即可开始整合了。

问题

在搭建springBoot+dubbo项目过程中:

  1. pom.xml文件中导什么包?
  2. application.properties需要配置什么?
  3. 需要用到哪些注解?
    首先pom.xml中需要导什么包,这个我在网上遇到了三种包,分别是:
    第一种:

    com.alibaba.boot
    dubbo-spring-boot-starter
    0.2.0

    第二种:

    com.alibaba.spring.boot
    dubbo-spring-boot-starter
    2.0.0

    第三种:

    io.dubbo.springboot
    spring-boot-starter-dubbo
    1.0.0

区别还未知。除此之外还需要导入zookeeper客户端包

<!-- zookeeper客户端 -->
<dependency>
	<groupId>com.101tec</groupId>
	<artifactId>zkclient</artifactId>
	<version>0.7</version>
</dependency>

接下来看三种类别的包对应application.properties中需要怎么配置:
第一种:

服务端:
#当前服务/应用的名字
dubbo.application.name=service-provider
#注册中心的协议和地址
dubbo.registry.protocol=zookeeper
dubbo.registry.address=zookeeper服务地址:2181
#通信规则(通信协议和接口)
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

消费端:

dubbo.application.name=service-consumer
dubbo.registry.address=zookeeper://zookeeper服务地址:2181

第二种:

服务端:
#dubbo应用名称
spring.dubbo.application.name=service-provider
#注册中心的协议和地址
spring.dubbo.registry.protocol=zookeeper
spring.dubbo.registry.address=zookeeper服务地址:2181
#通信规则(通信协议和接口)
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
#开启包扫描,可替代 @EnableDubbo 注解
spring.dubbo.scan.base-packages=com.example.demo.service.serviceImpl


消费端:
spring.application.name=service-consumer
spring.dubbo.registry=zookeeper://zookeeper服务地址:2181

第三种未测试,暂不做记录,后边有时间补上。

最后

注解用的有dubbo的

@service标注服务端服务接口

示例(@Component注解网上说要加,但亲测去掉没什么影响):

dubbo与springboot兼容版本 dubbo整合springboot_zookeeper_02


@Reference标注消费端消费接口

示例(需注意消费端同样要编写服务端提供的接口,但不用实现):

dubbo与springboot兼容版本 dubbo整合springboot_服务端_03


最最最后就是在启动类中加的一个注解:

如果是导入的第一种包

在启动类加:@EnableDubbo

作用:

@EnableDubbo是 @EnableDubboConfig 和 @DubboComponentScan两者组合的便捷表达方式。与注解驱动相关的是 @DubboComponentScan。

通过 @EnableDubbo 可以在指定的包名下(通过 scanBasePackages),或者指定的类中(通过 scanBasePackageClasses)扫描 Dubbo 的服务提供者(以 @Service 标注)以及 Dubbo 的服务消费者(以 Reference 标注)。

示例:

dubbo与springboot兼容版本 dubbo整合springboot_后端_04


注:可以在配置文件中使用dubbo.scan.base-package来替代@EnableDubbo

消费端不加此注解经测试没影响

如果导入的是第二种包

需在启动类中加:@EnableDubboConfiguration(服务端-消费端一样)

第三种未测试,暂不做记录。

以上就是我在整合springBoot,Dubbo时的一些经历,本文除了作为记录以外,还有一个重要事项是想请看到此文的大佬给讲解一下三种包的区别,如果有知道的还望讲解一下,在此先谢过
结束!