开发者学堂课程【阿里巴巴分布式服务框架Dubbo快速入门:创建提供者消费者工程】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/624/detail/9460
创建提供者消费者工程
首先想象一个场景,假设,有样一个需求,某一个电商系统里一个订单服务模块有一个创建订单的功能,创建订单时要去用户服务模块来查询用户的地址,而且,订单模块跟用户模块都在不同的服务器上,要进行远程通信,这种情况就相当于这个用户服务为我们提供能查询用户收货地址的功能,它是一个服务提供者,而订单服务,他想要获取到用户的收货地址,他是我们服务消费者。
那么就来创建这两个项目。
打开 Eclipse 创建一个 Maven 形式的新项目
填写 Group Id 和 Artifact Id
点击 Finish
选择左侧的 src/main/java 文件并新建一个包并将功能代码复制进去
点击进入 UserAddress.java 并进行相关操作
创建一个订单服务的项目
再次创建一个新的工程
填写 Group Id 和 Artifact Id
创建一个新的订单接口并初始化订单
Public void initOrder(String userId)
在创建一个订单的实现类并命名为 OrderService
将订单的接口复制过来
在 gmall 上创建一个 bean 包并把订单的 java bean 复制过来
在命令框中输入
UserService userService;
@Override
public voidiniterdec(steina urecTar.d
// TODO Auto-generated
//1、查询用户的收货地址
ListaddressList=
userService.getUserAddressList(userId);
System.out.println(addressList);
建议将服务接口,服务模型,服务异常等均放在 API 包中,因为服务模型及异常也是 API 的一部分,同时这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP)。
如果需要,也可以考虑在 API 包中放置一份 spring 的引用配置,这样使用方,只需在 spring 加载过程中引用此配置即可,配置建议放在模块的包目录下,以免冲突,
如:con/alibaba/china/xxx/dubbo-reference.xml。
再次创建一个新的公共工程填写 Group Id 和 Artifact Id
将接口复制进新的工程
打开刚刚新建的公共工程
输入<dependency>并插入依赖
<dependencies>
<dependency>
<groupId>com.atguigu.gmall</groupId> <artifactId>gmall-interface</<artifactId> <version>
0
.
0
.1-
SNAPSHT</version
>
</dependency>