springboot1.x和springboot2.x整合差距挺大的,基于最新的2.x进行整合,使用纯注解的方式

依赖选取

首先pom文件的依赖引入,maven仓库有Apachealibaba两个

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

三个聚合模块

  1. <modules>
  2. <module>api</module>
  3. <module>provider-log</module>
  4. <module>provider-message</module>
  5. </modules>
  6.  
  7. <parent>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-parent</artifactId>
  10. <version>2.1.6.RELEASE</version>
  11. <relativePath/> <!-- lookup parent from repository -->
  12. </parent>
  13.  
  14. <dependencies>
  15. <dependency>
  16. <groupId>org.springframework.boot</groupId>
  17. <artifactId>spring-boot-starter</artifactId>
  18. </dependency>
  19.  
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-test</artifactId>
  23. <scope>test</scope>
  24. </dependency>
  25.  
  26. </dependencies>

api模块用于提供dubbo服务接口,所以将dubbo的依赖添加在api里面,是有些不妥

api->pom.xml

  1. <dependency>
  2. <groupId>org.apache.dubbo</groupId>
  3. <artifactId>dubbo-spring-boot-starter</artifactId>
  4. <version>2.7.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.dubbo</groupId>
  8. <artifactId>dubbo</artifactId>
  9. <version>2.7.1</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.apache.dubbo</groupId>
  13. <artifactId>dubbo-dependencies-zookeeper</artifactId>
  14. <version>2.7.1</version>
  15. <exclusions>
  16. <exclusion>
  17. <groupId>org.slf4j</groupId>
  18. <artifactId>slf4j-log4j12</artifactId>
  19. </exclusion>
  20. </exclusions>
  21. <type>pom</type>
  22. </dependency>

其余的三个工程,都是引入父工程依赖引入apispring-boot-starter-web可选,提供web服务的话加上,不提供服务可以不加

  1. <parent>
  2. <groupId>com.chy.wx</groupId>
  3. <artifactId>spring-boot-dubbo</artifactId>
  4. <version>1.0-SNAPSHOT</version>
  5. </parent>
  6.  
  7. <dependencies>
  8.  
  9. <dependency>
  10. <groupId>com.chy.wx</groupId>
  11. <artifactId>sea-api</artifactId>
  12. <version>0.0.1-SNAPSHOT</version>
  13. </dependency>
  14.  
  15. <dependency>
  16. <groupId>org.springframework.boot</groupId>
  17. <artifactId>spring-boot-starter-web</artifactId>
  18. </dependency>
  19.  
  20. </dependencies>

api添加两个entity和两个service,更有区分性

配置文件

两个提供者provider,为的是更有区分性,application配置,这里采用yuml语法。

跟springboot1.x的区别是,dubbo单独开头,前面并没有spring

  1. server:
  2. port:
  3.  
  4. dubbo:
  5. application:
  6. name: sea-provider-log
  7. registry:
  8. protocol: zookeeper
  9. address: 192.168.1.222:
  10. protocol:
  11. name: dubbo
  12. port:
  13. version: 1.0.
  14. scan:
  15. base-packages: com.log

参数说明

  • dubbo.application.name       给provider起的名称
  • dubbo.registry.address              表示注册的地址,不一定非得是zookeeper
  • dubbo.protocol.name                就是dubbo
  • dubbo.protocol.port                   是注册的端口号,多个提供者使用的port需要区分开来
  • dubbo.protocol.scan                 是表示扫描哪些包下面的服务
  • version是自定的一个版本属性

发布的服务通过@Service注解,加载被扫描的实现类上面,这里使用的是dubbo的注解

启动类上面添加@EnableDubbo注解

测试发布

命令操作查看

通过如下命令进入dubbo

telnet 192.168.1.222 21880

查看发布的服务使用ls

如下表示ErrorLogService发布成功,且版本为1.0.0

更多命令查看Telnet 命令参考手册

web服务查看

感觉不直观可以下载dubbo-admin监控工程,配置application.xml,之后启动查看

release版本 https://github.com/apache/dubbo/releases 下载运行即可

或者下载我已经上传的dubbo-admin.war包(博客园上传限制为10M)

百度云

链接:https://pan.baidu.com/s/18QSZLySLj8az11ebQJvG1Q

提取码:2jgy 

CSDN

觉得慢快速下载地址:https://download.csdn.net/download/qq_37933127/10569470

war包放入tomcatwebapps目录下,启动会自动解压

之后将application.xml修改成自己的zookeeper地址即可

默认用户名和密码都为root

启动访问即可,默认的根路径为文件夹的名字,访问如图所示即可以看详细信息

web调用方使用@Reference注解即可,如果提供了版本号需要加版本号,如下所示

完整的dubbo-demo

仅需要修改yml的zookeeper地址即可

https://github.com/chywx/spring-boot-dubbo

springboot2.x纯注解整合dubbo的更多相关文章

  1. Spring+MyBatis纯注解零XML整合(4)

    不得不说,利用XML作为配置文件是一个非常好的想法,它可以轻松地实现配置集中化,而且修改之后无需再次编译.然而,由于大多数情况下开发者基本都会拿到程序的源码,加之对于各种XML配置文件一般情况下也只有 ...

  2. Dubbo学习-6-springboot整合dubbo

    1.在前面帖子和工程的基础上,这里使用springboot整合dubbo,首先创建springboot项目: https://start.spring.io/  进入spring Initializr ...

  3. Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!   “看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一 ...

  4. spring整合dubbo[单机版]

    Spring整合Dubbo,这个是用xml配置的 (方式一) 来梳理下步骤: 1. 安装zookeeper,在进行简单配置[这里使用单机模式,不用集群] 2. 创建maven项目,构建项目结构 3. ...

  5. SpringBoot开发案例之整合Dubbo分布式服务

    前言 在 SpringBoot 很火热的时候,阿里巴巴的分布式框架 Dubbo 不知是处于什么考虑,在停更N年之后终于进行维护了.在之前的微服务中,使用的是当当维护的版本 Dubbox,整合方式也是使 ...

  6. springboot多模块开发以及整合dubbo\zookeeper进行服务管理

    之前研究了springboot单工程的使用,参考git地址:https://github.com/qiao-zhi/springboot-ssm 下面研究springboot多模块开发的过程. 1.模 ...

  7. springboot整合dubbo\zookeeper做注册中心

    springboot整合dubbo发布服务,zookeeper做注册中心.前期的安装zookeeper以及启动zookeeper集群就不说了. dubbo-admin-2.5.4.war:dubbo服 ...

  8. SpringBoot2.0+Shiro+JWT 整合

    SpringBoot2.0+Shiro+JWT 整合 JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息. 我们利用一定的编 ...

  9. java框架之SpringBoot(16)-分布式及整合Dubbo

    前言 分布式应用 在分布式系统中,国内常用 Zookeeper + Dubbo 组合,而 SpringBoot 推荐使用 Spring 提供的分布式一站式解决方案 Spring + SpringBoo ...

随机推荐

  1. AY的Dapper研究学习-继续深入-C#开发-aaronyang技术分享

    原文:AY的Dapper研究学习-继续深入-C#开发-aaronyang技术分享 ====================www.ayjs.net       杨洋    wpfui.com      ...

  2. 数据绑定(九)Binding的数据校验

    原文:数据绑定(九)Binding的数据校验 Binding用ValidationRules属性来校验数据的有效性,ValidationRules属性类型是Collection<Validati ...

  3. 【Gerrit】持续集成工具Jenkins的安装配置与使用过程中遇到的问题整理

    1.下载war包 https://jenkins.io/download/ 2.安装 java -jar jenkins.war Error: Feb 21, 2019 2:17:25 AM wins ...

  4. 利用Python sklearn的SVM对AT&T人脸数据进行人脸识别

    要求:使用10-fold交叉验证方法实现SVM的对人脸库识别,列出不同核函数参数对识别结果的影响,要求画对比曲线. 使用Python完成,主要参考文献[4],其中遇到不懂的功能函数一个一个的查官方文档 ...

  5. 通过Chrome扩展来批量复制知乎好友

        1.初始化文件 Chrome 官方扩展教程地址 新建一个文件夹 zhi-follow 下图中 1 部分为 默认的图标3种尺寸 会显示在 Chrome 中   2. 定义按钮样式   页面上会有 ...

  6. 利用NPOI生成DOCX文档

    首先安装NPOI控件: Install-Package NPOI 代码: using NPOI.OpenXmlFormats.Wordprocessing; using NPOI.XWPF.UserM ...

  7. JS 浮点加减乘除运算

    //浮点数加法运算 function FloatAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1]. ...

  8. ML:机器学习中常用的Octave语句

    coursera上吴恩达的机器学习课程使用Octave/Matlab实现算法,有必要知道Octave简单的语句.最重要的:在遇到不会的语句,使用'''help '''或者'''doc '''查看官方文 ...

  9. Qt4.85静态编译配置VS动态编译(非常详细的图文教程)

    http://www.qter.org/forum.php?mod=viewthread&tid=1409&extra=page%3D1&page=1

  10. 学会了使用qmake -query

    D:\Qt\Qt5.6.2_static_kk\bin>qmake -queryQT_SYSROOT:QT_INSTALL_PREFIX:C:/Qt/Qt5.6.2_static_kkQT_IN ...