创建订单微服务模块

本节的源代码是在 newbee-mall-cloud-dev-step15 工程的基础上改造的,将工程命名为 newbee-mall-cloud-dev-step16。在工程中新增一个 newbee-mall-cloud-order-service 模块,并在 pom.xml 主文件中增加该模块的配置,代码如下:

<modules>
    <module>newbee-mall-cloud-order-service</module>
    <module>newbee-mall-cloud-shop-cart-service</module>
    <module>newbee-mall-cloud-recommend-service</module>
    <module>newbee-mall-cloud-goods-service</module>
    <module>newbee-mall-cloud-user-service</module>
    <module>newbee-mall-cloud-gateway-mall</module>
    <module>newbee-mall-cloud-gateway-admin</module>
    <module>newbee-mall-cloud-common</module>
</modules>

该模块的目录结构设置与其他功能模块的目录结构设置类似,如下所示:

newbee-mall-cloud-order-service    // 订单微服务
├── newbee-mall-cloud-order-api    // 存放订单模块中暴露的用于远程调用的 FeignClient 类
└── newbee-mall-cloud-order-web    // 订单 API 的代码及逻辑

在新增订单微服务时,主要参考了新增商品微服务时的步骤。笔者直接将 newbee-mall-cloud-dev-step05 源代码下 newbee-mall-cloud-goods-service 模块中的代码复制过来,之后修改了模块名称和目录名称。

由于改造过程中直接复制了 newbee-mall-cloud-dev-step05 源代码下 newbee-mall-cloud-goods-service 模块中的代码,因此在修改完依赖配置后,需要修改包名,把 ltd.goods.cloud.xxx 改为 ltd.order.cloud.xxx,之后修改 config 包中的代码,包括全局异常处理配置类、Swagger 配置类、自定义 MVC 配置类,主要修改了这些类的类名。这样就完成了一个订单微服务的初始构建工作。

订单微服务中的用户身份认证也需要处理,过程与之前微服务模块中的处理步骤类似。由于订单微服务中的接口涉及商城端和后台管理系统,因此与商城端用户和管理员用户两种身份相关的逻辑代码都要复制过来。接着,需要引入 LoadBalancer 依赖和 user-api 依赖,并修改商城端用户和管理员用户 token 处理类中的逻辑代码,并通过 OpenFeign 来调用用户微服务中的接口,在订单微服务中实现两种用户的鉴权和信息获取。