前言
从这一章开始搭建Dubbo环境,也就是使用者最期待的干货——如何编写一个Dubbo版的HelloWorld程序?
为了演示方便,更重要的是为了方便Bean的管理等资源,特地引入Springboot帮我们搭建Web环境。
本文分为二方包的编写、Springboot环境搭建、服务提供方编写、服务消费者编写四个部分。
首先说明,二方包、服务提供者、服务消费者都需要单独打包,也就是位于三个不同的项目中。
demo源码已经上传,
二方包的编写
我们从最简单的过程开始。二方包的编写很简单,新建一个maven项目,创建一个名为edu.hsftest.api的包,然后包下创建一个接口
package edu.dubbotest.api;
public interface IHelloWorld {
String say(String name);
}
不需要引入额外的依赖,然后我们在idea的terminal(或者进入项目根目录下,打开终端/cmd)输入构建指令(哦,还得保证你配置过maven,没配置过请百度一下吧)
mvn package
然后去项目的target文件夹下找到api-1.0-SNAPSHOT.jar文件,以备后续使用。
也可以参考后面关于maven的文章,将二方包安装在本地仓库下,执行
mvn install
这样后续就可以按正常方式引入依赖
Springboot环境搭建
最简单的方式是通过SpringInitializr创建,可以参见这篇文章,不再赘述。
我自己是通过手动配置pom来做的,因为想体验一下配置过程:)
简而言之,parent标签配置spring-boot-starter-parent,dependencies配置spring-boot-starter-web就大功告成了。一开始没有配置parent,导致很多springboot的功能都无法使用。
配置完依赖之后,需要编写main+controller,最终搭建一个最基础版本的网页,代码就不附了,给一个参考文章
这就是最简单的网页,实在懒得复读过程了,大家可以参考给出的链接。然后我们开始做一些和dubbo有关的事情,go~
Dubbo消费者编写
之所以不先说生产者,是因为消费者的代码更复杂些,还需要包含Controller等代码。
依赖添加
这里我们根据官方指导来,先在pom里添加两个依赖(注意,是添加!)。这里我们采用的是2.7.12版本的dubbo。别忘了还有个二方包需要加入进来,是通过系统绝对路径的方式引入。这会在打包的时候造成一些问题,但是我们先忽略它,因为这样是可以运行的。如果之前将二方包安装在本地仓库了,那也可以和其它包一样正常引入。
<properties>
<dubbo.version>2.7.12</dubbo.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>