SpringBoot+dubbo ,5分半完美跑起来
最近有用到Springboot+dubbo,但是去网上搜了好多帖子,发现都不能用,于是打算自己出一个。首先安装zookeeper,因为是开发环境,所以直接在Windows上安的,修改一下配置文件,点击zkServer.cmd启动,不要关闭窗口,关闭的话服务就会关闭。接下来就是正式搭框架了。首先,创建一个父项目,暂不讨论命名问题,然后右键你创建的项目,就像下边这样,文字叙述就是右键springboo
最近有用到Springboot+dubbo,但是去网上搜了好多帖子,发现都不能用,于是打算自己出一个。
首先安装zookeeper,因为是开发环境,所以直接在Windows上安的,修改一下配置文件,点击zkServer.cmd启动,不要关闭窗口,关闭的话服务就会关闭。
接下来就是正式搭框架了。
首先,创建一个父项目,暂不讨论命名问题,然后右键你创建的项目,就像下边这样,
文字叙述就是右键springboot这个项目名,然后鼠标移动到new 上,选择module,创建子项目
创建3个springboot子项目,创建的时候勾选一下web,有时候不勾选好像不可以。
创建完成就像这样
其中api是暴露接口服务的api层,provider是服务提供者,customer是服务消费者。因为本教程是基本教程,太社会的话就不说了。
这是api层暴露的接口,不需要写任何注解加任何配置。写个接口就可以了。
接下来是服务提供者,我们要导入依赖,这里我们用一个依赖就可以了
<dependency> <groupId>com.gitee.reger</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>1.1.1</version> </dependency>
没错就是它,我记得还有一个io.啥的那个也可以用的。
这个依赖不要加到provide里,这样显得你很弟弟,我们打开父项目的pom,我这里也就是springboot的pom,因为这个项目pom比较多,千万别搞错,把依赖加入进去,然后在把api的依赖加进去。这个很简单的打开api的pom文件,
复制上边的groupId 这些,不要复制打包哪一行,然后在父Pom里加进去。
然后就成了这样。接下来把服务提供者和服务消费者的pom里
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository -->
</parent>
这个改成依赖父pom的groupid等。这样你就可以在子项目用父项目的配置依赖了。
这样依赖就算完成了。
终于可以愉快的敲代码了
然后在服务提供者里(provider) 新建一个实现类,因为父pom里都有api的依赖,所以不会报错。实现接口,使用@Service注解一下
注意是alibaba的包下的,不是springboot的。切记
然后写配置文件,
## Dubbo 服务提供者配置 server.port=6783 #应用名称 spring.dubbo.application.name=provider #注册中心地址 spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 #协议名称 spring.dubbo.protocol.name=dubbo #协议端口 spring.dubbo.protocol.port=20880 #服务类包目录 spring.dubbo.base-package=impl
考虑到cv党的幸福,我选择直接贴代码,免得复制不到
启动成功就是这个样子
如果你的注解没有加对或者扫描路径不对就会报错,或者启动不起来,不显示dubbo和zookeeper这些信息。
接下来是服务消费者的代码
这里需要注意的也就是@Reference注解,
server.port=8081 spring.dubbo.application.name=consumer #注册中心地址 spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 #rpc调用的包 spring.dubbo.base-package=controller这个是他的配置文件。这里要注意端口不要重复,扫描的包要是@Reference注解出现的包,也就是你调用的包。
然后启动消费者。和消费者启动console 信息差不多。
然后访问 http://localhost:8081/main?name=jack
成功!
刚开始按照其他教程做好长时间没出来,各种错误,这里 要注意父pom与子pom之间的依赖,别写错了,还有服务提供者消费者的扫描路径,注册地址等。
更多推荐
所有评论(0)