springboot dubbo引入包_Spring boot整合Dubbo

af283d5f87cae9e06ecb5c412f978273.png

一、学习内容

1. 整理Spring boot整合dubbo 创建项目的步骤

1) 整合过程中pom中相关依赖的介绍

Spring Boot参考文档地址:

https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-starter

Spring boot相关:

Spring-boot-starter:核心启动器,包括自动配置支持,日志记录和YAML

Spring-boot-starter-web:使用Spring MVC构建web(包括RESTful)应用程序,使用Tomcat作为默认的嵌入式容器

Spring-boot-starter-test:使用JUnit,Hamcrest和Mockito等库来测试Spring Boot应用程序

Spring-boot和dubbo整合相关:

dubbo-spring-boot-starter:Spring Boot快速继承Dubbo关键的依赖

3fd2a50f8007c85a97f977159ed3093a.png

dubbo相关:

dubbo

2e980c503d664bcbfce139bcb9f1238d.png

zookeeper的包

Zkclient

4c35683478566c4695fa3169b5a4741b.png

其他(可以理解成是辅助集成zookeeper的):

在使用ZK开发时会遇到让人头疼的几个问题,ZK连接管理、SESSION失效等一些异常问题的处理,Curator可以解决这些问题,通过对ZK连接状态的监控来做出相应的重连等操作,并触发事件。并且Curator对ZK的一些应用场景在符合ZK使用规范的基础上提供了非常好的实现,并有很多扩充。

curator-framework: 封装了大量ZooKeeper常用API操作,降低了使用难度, 基于Zookeeper增加了一些新特性,对ZooKeeper链接的管理,对链接丢失自动重新链接。

0e3449267c448d98d7d45daf86427cd4.png

curator-recipes:ZooKeeper的系列recipe实现, 基于 Curator Framework

1cda690d10cf76c4c0e78b2c098a7e69.png

Maven之exclusions(排除依赖):

pom配置里允许用<excusion>来排除一些不需要同时下载的依赖Jar

16c1318591212359b94ae87379576574.png

2) 父项目和子项目之间的依赖关系

① dependencies与dependencyManagement的区别

② 子项目的pom如何继承父项目pom的依赖?

子项目的pom就要通过使用<parent>标签来继承,具体如所示:

c564a9ab26429fb6072f4d7154d49c44.png

③ 如何添加依赖?

A. 不通过继承(可能发生重复引用的问题)

不通过继承就直接按照一般的方式(要有version),如下图所示:

20fe8cc66128c724fa137b4fc0555db0.png

B. 通过继承

主pom中把依赖通过<dependecyManagement>引起来,表示子pom可能会用到的jar包依赖。子pom如果需要引用该jar包,则直接引用即可,不需要加入<version>。

主pom中:

3c74554790c0e0366f3b06e08eef08f9.png

子项目中:(此处只是举个例子,两个pom之间没有直接关联,主要关注格式而非具体的依赖名称)

993f79b22f850f17624a7a02164775bc.png

3) Spring boot整合Dubbo的详细过程

① 首先贴出项目最终的结构:

54125f356fbc3026aa4258a39f242595.png

各个模块的结构:(红框标注的部分都是自己要添加的文件)

api:

3a1175bd021a56226ef727efbf9d22e9.png

consumer:

9d336dc67bd591e4acb7dd95f09f3341.png

provider:

8bb7aa4b46b6a922d321a07f575f755a.png

② 具体过程

先创建一个基于maven的空项目,然后分别在这个项目下面创建三个模块,命名为api,consume,.provider。其中,api是一个普通的maven项目,另外两个都是基于spring boot的项目。

c617dc8381e090d053ae76c19d23c77f.png

d2ac271b58be8e6e6b4f307a363d1c7f.png

e613f2c4a4f5253025b8fbfba6d1efc7.png

点next之后直接点击finish,接着创建三个模块,顺序是api、provider、consumer

039a77dce2c5fe74af26d180b3b2962d.png

a95272567d7d74dfbff1558f724f0173.png

26d01ca8e783bfe903040c8c54a4846e.png

点击next,之后finish,继续创建模块,注意选择Spring Initialize

e3b7248d877a1d2f0618ff1bc0d425e9.png

286b83fd04d84d0cb737635b49493e64.png

2e840399f396adc8fa4d7808b04d6c7c.png

next之后点击finish。同样的方法创建concumer模块,只要把相应位置的Provider换成consumer即可。

项目创建完成先进行maven的配置,file-setting,搜索maven,进行如下图所示配置,根据自己的maven实际的路径,其中local repository自己创建一个文件夹即可用来存放下载的jar包。

5c532149b42ff21e7fe0d4953ac30c2c.png

至此要注意模块之间的依赖关系:

除了dubboDemo是剩下三个模块的父项目之外,concumer模块和provider模块都要对api模块添加依赖,添加依赖的方式有两种,一种是在concumer和provider的pom文件中添加如下语句:

2eb89c378236b9b7be4cd8b419c83159.png

另一种是:

ba0ecda924ed25add18019d903799531.png

0a915999f972ff5bc74e57a90877e6bb.png

567537970674e3dff088e496fbe10313.png

选择api,点击OK-->OK。

下面就是根据目录结构创建文件,先在相应的pom中添加依赖,然后在相应位置创建provider.xml,consumer.xml。接着修改application.properties文件。之前也了解过dubbo的调用流程,接口在api中创建,实现在provider中完成,在consumer中完成调用,所以控制层在consumer,按照这样的顺序一步一步来即可。

consumer的application.properties:

0b381d5a01de4428f48515d4faa47b4c.png

Provider的application.properties:

5093bc0fe6d971d6fecc39267f8516bf.png

ConsumerApplication:

0c3230b13d0d824d81264a43d9a6f877.png

ProviderApplication:

d0e614ffeef47668f0e97ffd69612e45.png

其他文件自行创建,对控制层代码进行特别提示:注意Refefrence是哪个包里的

218072e238ddf4c74b1b916da29dd9bd.png

2. 关于项目运行:先启动zookeeper,运行zookeeper解压目录bin目录下的zkServer.cmd,然后先启动provider再启动consumer,在浏览器输入:

f855153e27f0e2ca750790177dce32b2.png

GitHub上的demo被删除了 待我整理一波再奉上地址。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值