springboot1.x和springboot2.x整合差距挺大的,基于最新的2.x进行整合,使用纯注解的方式
首先pom文件的依赖引入,maven仓库有Apache和alibaba两个
Dubbo早已孵化完成,破壳而出,成为Apache顶级项目,这里引用Apache的maven依赖
采用maven聚合项目,架构如图所示
详细层级结构图
api 公用的entity和service接口 provider-log log服务提供方 provider-message message服务提供方 consumer 消费方
顶级pom.xml引入spring-boot-starter-parent,使用新版2.1.6.release
三个聚合模块
<modules>
<module>api</module>
<module>provider-log</module>
<module>provider-message</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
api模块用于提供dubbo服务接口,所以将dubbo的依赖添加在api里面,是有些不妥
api->pom.xml
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
<type>pom</type>
</dependency>
其余的三个工程,都是引入父工程,依赖引入api,spring-boot-starter-web可选,提供web服务的话加上,不提供服务可以不加
<parent>
<groupId>com.chy.wx</groupId>
<artifactId>spring-boot-dubbo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>com.chy.wx</groupId>
<artifactId>sea-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
api添加两个entity和两个service,更有区分性
两个提供者provider,为的是更有区分性,application配置,这里采用yuml语法。
跟springboot1.x的区别是,dubbo单独开头,前面并没有spring
server:
port: 8081
dubbo:
application:
name: sea-provider-log
registry:
protocol: zookeeper
address: 192.168.1.222:2181
protocol:
name: dubbo
port: 20887
version: 1.0.0
scan:
base-packages: com.log
发布的服务通过@Service注解,加载被扫描的实现类上面,这里使用的是dubbo的注解
启动类上面添加@EnableDubbo注解
通过如下命令进入dubbo
telnet 192.168.1.222 21880
查看发布的服务使用ls
如下表示ErrorLogService发布成功,且版本为1.0.0
更多命令查看 Telnet 命令参考手册