前言:本文需要建立在博主的环境之上来进行,大家也可以用自己的环境测试一下看能不能行得通,如果可以的话请在下方评论,让更多的人知道
Jdk:11
Springboot版本:2.6.6
Dubbo版本:0.2.0(这里你是Jdk8及以上就要用这个,如果是Jdk7及以下的要用0.2.0下面的版本)
Idea:2021.3.3
一、创建我们的父模块
构建一个spring Intializr项目,如果不会构建的话可以自己查一下,很简单的
第一个页面填完了之后,进入到下一个页面选择springboot的版本,什么依赖都不用选,自己Finish就行了(这里springboot版本选不了2.6.6,自己在这里随便选一个,之后再进去里面修改)
之后可以去File -Settings - 搜索Maven - 修改成我们自己的Maven仓库地址和自己的Maven配置文件地址
再设置自己Maven插件的version为2.6.6
加上这一句,不然后面会报错
之后在Pom.xml文件中设置<modules><modules>,设置3个子模块,后面我们要用到
我们下面按照上面<module>的顺序来创建即可,记得父模块、两个子模块的springboot版本以及maven插件的版本都设置成2.6.6(接口的子模块不用写)
二、创建dubbo-interface子模块
创建很简单,直接在我们的父模块的地方右键 - new - module就行了,取名就叫做dubbo-interface
大家可能会疑惑为什么要创建出三个子模块,等会我跟大家说,大家先进行操作
首先配置Pom.xml文件
之后在src - main - java - xxx.xxx(这里是你命名的)下面创建两个文件夹,entity(放实体类),service(放service层接口)
entity下面先创建一个实体类,这里没引入一个依赖,所以我们手写get、set方法,快捷键按住alt+insert就有get、set方法一键生成,这里注意要实现Serializable序列化接口,因为我们传输的是一个对象,我们自己也可以写序列化的规则,但是我们直接实现它会更快速一点
service写一个接口
三、创建第二个子模块:service-provider
编写Pom.xml文件
上述说了springboot版本以及maven版本,这里不过多叙述
编写service层接口的实现类,先创建service、Impl文件夹,再创建实现类
这里为了方便学习,就不再列出dao层了,dao层也可以进行分布式,写进接口子模块就行
这里的注解不是springboot的了,是dubbo的,大家看import就能看出来
编写配置文件 resources - application.properties,这里大家懵逼的是为啥还有个注册中心,这个是需要部署的,大家可以去看看别人的教程,如果大家需要我将一天内做一个zookeeper教程,评论区留言即可
四、创建第三个子模块:service-consumer
配置Pom.xml文件,这里就比service-consumer多了一个web的依赖,这里也需要改springboot版本以及maven版本
不够放,再放一张照片
编写controller层,首先创建文件夹controller,再创建类
之前我们依赖注入的是@Autowired注解,现在是@Reference注解,这是为了远程调用,@Autowired是本地注入
编写配置文件application.properties
五、运行
首先运行我们的服务端service-provider
之后运行我们的消费端service-consumer
之后在浏览器中输入http://localhost:8081/user/getOne,如果出现一串json格式的数据,就表示成功啦~