.flv 网站播放app首页图片
系列文章目录
文章目录
- 系列文章目录
 - 一、创建一个父工程项目
 - 二、创建子模块(dubbo-api模块)
 - 二、创建子模块(dubbo-provider模块)
 - 三、创建子模块(dubbo-consumer模块)
 - 总结
 
一、创建一个父工程项目
这里我们通过
Spring Initializer来帮我们构建一个spring-dubbo这个父项目,点击next

这里我们选择
spring boot的版本为2.3.12,这里我没有拉下来,所以我后面改成了2.3.2.RELEASE版本。

由于我们是通过
spring-dubbo来做父项目,来帮我们做pom依赖管理,所以我们不需要这些无用目录

二、创建子模块(dubbo-api模块)
这里是和创建父模块一样的流程

这里也同样删除掉多余的文件目录,也删除掉
springboot的启动类,因为这个模块主要是定义接口,实体,公共资源等,给dubbo服务调用双方依赖使用。

这里修改
dubbo-api的pom文件:
- 让其
 parent指向刚刚创建的父项目
2.修改packaging方式为pom

这里修改
spring-dubbo的pom文件:
- 改变了
 packaging方式为pom- 增加
 modules,注册了模块工程dubbo-api

创建一个接口定义 ->
DemoService

二、创建子模块(dubbo-provider模块)
这里和前面创建
dubbo-api的流程一样,创建完后后删除多余的文件,然后修改dubbo-provider的pom文件:
- 指定
 parent- 设置打包类型为
 jar- 导入
 spring web环境的依赖包,和dubbo自动装配的依赖包和接口定义的依赖包

父
pom中管理的模块增加dubbo-provider

在
dubbo-provider模块中创建DemoServiceImpl,实现了DemoService,并添加@Service注解,这个@Service注解是Dubbo提供的,标注了这个是一个Dubbo服务。

设置
dubbo-provider的配置文件,设置如下配置:
- 指定应用名称
 - 指定协议类型为
 dubbo- 指定协议暴露端口,这里-1表示
 dubbo随机获取端口- 设置注册中心的地址,这里我们用的是
 zk

然后在
dubbo-provider的启动类上面加上@EnableDubbo注解,表示启用Dubbo服务。

三、创建子模块(dubbo-consumer模块)
创建流程和
dubbo-provider一致,只是模块名称不一样,修改pom.xml也和provider一致,这里配置文件中除了应用名不一致,其他配置和provider一致。

这里我们新创建一个Task,然后通过
@Reference注解引入了DemoService,这里Task实现了CommandLineRunner,SpringBoot在项目启动后会遍历所有实现CommandLineRunner的实体类并执行run方法,在run方法中方法中我们会不断调用DemoService#sayHello方法,这里我们像调用本地方法一样调用。。

这里我们首先把
Provider启动起来,

这里我们启动
consumer的时候发现端口被占用了,因为我们没有指定端口,默认就是8080,刚刚provider启动就在8080,所以我们给consumer指定一个端口为8081,然后启动,这里在控制台我们可以发现远程调用成功。

总结
本节讲了Dubbo如何与spring集成,下一章我们会将spring整合dubbo的源码实现。
