订单微服务编码
本节的内容是补充订单微服务中的业务代码,主要是把原单体 API
项目中的功能模块整合到订单微服务中。
打开订单微服务 newbee-mall-cloud-order-web
的工程目录,在 ltd.order.cloud.newbee
包下依次创建 config
包、dao
包、entity
包、service
包,在 resources
目录下新增 Mapper
文件夹用于存放 Mapper
文件。接着,将原单体 API
项目中与订单模块相关的业务代码和 Mapper
文件(如图 8-12 所示)依次复制过来。

上述步骤完成后,最终的目录结构如图 8-13 所示。

修改 newbee-mall-cloud-order-web
工程中的 application.properties
配置文件,主要进行数据库连接参数及 MyBatis
扫描配置,代码如下:
# datasource config (MySQL)
spring.datasource.name=newbee-mall-cloud-order-datasource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/newbee_mall_cloud_order_db?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.pool-name=hikariCP
spring.datasource.hikari.max-lifetime=600000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
# mybatis config
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
以上操作中的源代码涉及的数据库为 newbee_mall_cloud_order_db
,数据库表为 tb_newbee_mall_order
、tb_newbee_mall_order_item
、tb_newbee_mall_user_address
、tb_newbee_mall_order_address
。除此之外,还会用到商品数据和用户数据,这部分数据就要使用远程调用技术了。
打开商城端网关 newbee-mall-cloud-gateway-mall
项目中的 application.properties
文件,新增关于订单微服务的路由信息,配置项为 spring.cloud.gateway.routes.*
,新增内容如下:
# 订单接口的路由配置
spring.cloud.gateway.routes[5].id=order-service-route
spring.cloud.gateway.routes[5].uri=lb://newbee-mall-cloud-order-service
spring.cloud.gateway.routes[5].order=1
spring.cloud.gateway.routes[5].predicates[0]=Path=/orders/mall/**
# 收货地址接口的路由配置
spring.cloud.gateway.routes[6].id=order-service-route2
spring.cloud.gateway.routes[6].uri=lb://newbee-mall-cloud-order-service
spring.cloud.gateway.routes[6].order=1
spring.cloud.gateway.routes[6].predicates[0]=Path=/mall/address/**
如果访问网关项目的路径是以 /orders/mall/
和 /mall/address/
开头的,就路由到订单微服务实例。
打开后台管理系统网关 newbee-mall-cloud-gateway-admin
项目中的 application.properties
文件,新增关于订单微服务的路由信息,配置项为 spring.cloud.gateway.routes.*
,新增内容如下:
# 订单接口的路由配置
spring.cloud.gateway.routes[5].id=order-service-route
spring.cloud.gateway.routes[5].uri=lb://newbee-mall-cloud-order-service
spring.cloud.gateway.routes[5].order=1
spring.cloud.gateway.routes[5].predicates[0]=Path=/orders/admin/**
如果访问网关项目的路径是以 /orders/admin
开头的,就路由到订单微服务实例。