SpringCloud微服务架构实战库存管理与分布式文件系统

本文介绍了如何在SpringCloud微服务架构中进行库存管理,包括基于MyBatis的数据库开发,数据库服务组装,单元测试,库存微服务接口设计以及Web应用开发,并详细阐述了Web应用的热部署设置。通过实例展示了商品对象、Mapper设计、服务类和控制器的实现。
摘要由CSDN通过智能技术生成

库存管理与分布式文件系统

在电商平台的库存管理系统设计中,将涉及商品和本地图库的管理,这里我们将使用另一种数据开发框架 MyBatis进行数据库访问方面的设计,还将实现与分布式文件系统的对接使用。

本章实例的项目工程是一个商品微服务项目goods-microservice,可以从本文提供的源代码中下载,或者在IDEA中通过Git检出:

  • 检出代码后,请获取本实例使用的分支V2.1。本项目包含以下几个模块:
  • goods-object:公共对象设计。
  • goods-restapi:库存管理微服务API应用。goods-web:库存管理PC端Web应用。

SpringCloud微服务架构实战库存管理与分布式文件系统

 

本篇文章要介绍的内容

  1. 基于MyBatis的数据库开发,
  2. 数据库服务组装,
  3. 单元测试,
  4. 库存微服务接口开发,
  5. 库存管理的Web应用开发,
  6. Web应用项目热部署设置

基于MyBatis的数据库开发

有关数据库开发的整个过程是在模块 goods-restapi 中实现的,在这个模块中,我们将使用MyBatis开发框架实现数据库的访问设计。其中,有关数据源的配置及其相关监控与第6章的设计相同,不再说明。

使用经过组装的MyBatis 组件

这里我们将在使用MyBatis组件的基础上,再使用一个经过高级封装设计的MyBatis组件。使用这一组件不但能简化一些基本的查询设计,还能提升程序的性能。在项目对象模型中引入相关组件的依赖,代码如下所示:

<! --mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version>
</ dependency>
<!--mapper--><dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId><version>2.0.4</version>
</dependency>
<!--pagehelper--><dependency>
<groupId>com.github.pagehelper</groupId>
K<artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.3</version>
</dependency>

其中,有关tk.mybatis 的设计,如果读者感兴趣,可以登录GitHub官网,搜索Mybatis进行更进一步的了解。

数据对象及其表结构定义

在库存管理中,我们将主要创建一个商品对象Goods,它的定义如下所示:

@Table (name = "tgoods")
@ Data
public class Goods {
//商品编号
@Id
@GeneratedValue(strategy =- GenerationType. IDENTITY)private Long id;
//商家编号
private Long merchantid;//主类编号
private Long sortsid;//子类编号
private Long subsid;//商品名称
private string name;//商品内容
private string contents;
//商品图片
private String photo;//价格
private Double price;//购买数量
private Integer buynum;//库存数量
private Integer reserve;//操作员
private String operator;//创建时间
@DateTimeFormat (pattern= "yyyy-MM-dd HH:mm : ss")private Date created;
}

在上面的代码中,主要解释下面几个内容:(1)注解@Table关联了数据库的表格t _goods。

(2)注解@Data使用了Lombok 工具,它会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode和 toString 等方法。

(3)注解@Id和注解@GeneratedValue将在数据创建或编辑时为对象取得数据库ID的值。

(4)注解@DateTimeFormat使用了日期格式化,以保证在数据存取中使用正确的日期格式。

商品对象在数据库中对应的表格为t_goods,这个表结构的定义如下所示:

CREATE TABLE 'tgoods'(
'id' bigint (20) NOT NULL AUTO INCREMENT,
' contents' varchar(255)COLLATE utf8 bin DEFAULT NULL,'created' timestamp NOT NULL DEFAULT CURRENT TIMESTAMP,'merchantid' bigint (20) DEFAULT NULL,
'name'varchar(255)COLLATE utf8 bin DEFAULT NULL,
'operator' varchar(255) COLLATE utf8_bin DEFAULT NULL,'photo'varchar(255)COLLATE utf8_bin DEFAULT NULL,'price'double DEFAULT NULL,
'reserve' int(11)DEFAULT NULL,'sortsid' bigint(20) DEFAULT NULL,'subsid' bigint (20) DEFAULT NULL,' buynum' int (11) DEFAULT NULL,PRIMARY KEY ('id')
}
ENGIN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值