基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)
操作系统:Windows
Java开发包:JDK1.8
项目管理工具:Maven3.6.0
项目开发工具:IntelliJIDEA
数据库:MySQL
Spring Cloud版本:Finchley.SR2
Spring Boot版本:2.0.6.RELEASE
目录用户模块—user-service商品模块—goods-service数据库设计EurekaServer与公共工程的搭建搭建Eureka Server步骤1:创建项目,引入依赖步骤2:添加Eureka的相关配置步骤3:定义Security安全控制步骤4:在项目启动类添加注解步骤5:测试运行搭建公共工程步骤1:创建公共工程模块步骤2:创建与数据库中各张表对应的实体类步骤3:将Module项目打成jar包到Maven仓库用户模块实现步骤2:在全局配置文件application.yml中添加Eureka、MySQL以及MyBatis的相关配置步骤3:在项目启动类添加@EnableEurekaClient注解搭建user-consumer步骤1:创建项目,引入依赖步骤2:在全局配置文件application.yml中添加Eureka和Thymeleaf的相关配置信息用户登录功能步骤1:在工程user-provider中定义用户登录接口步骤2:在工程user-consumer中调用user-provider中的接口实现用户登录功能步骤3:启动测试登录功能用户注册功能步骤1:在工程user-provider中定义用户注册接口步骤2:在工程user-consumer中调用user-provider中的接口实现用户注册功能
此电商系统包含了用户与商品两个模块的部分功能,用户模块包括用户注册、用户登录;商品模块包括商品展示、商品详情、购物车以及订单。

开发项目之前,有必要根据项目业务进行分析,设计一套合理的架构。
本系统采用的是Spring Cloud微服务架构,根据业务功能将系统划分为5个服务,这5个服务构成了一套完整的微服务系统。其中,2个服务是基础服务,提供了一套服务治理的功能,它们分别是Eureka Server和网关服务;2个服务是资源服务,分别是用户服务和商品服务,对外暴露API接口,除此之外,还有一个common的工程,为资源服务提供基本的工具类。

浏览器访问服务端时,首先会经过网关,网关会根据请求路由到不同的服务,并且每个服务都会从不同的MySQL数据库获取数据。
用户模块—user-service

商品模块—goods-service

数据库设计
1.用户模块

/*创建数据库webuser*/ CREATE DATABASE webuser;/*8.0以下版本MySQL执行以下SQL修改字符编码*/ alter database webuser character set utf8; set names gbk;/*使用数据库webuser*/USE webuser;/*创建表user*/ CREATE TABLE user ( uaccount int(11) AUTO_INCREMENT PRIMARY KEY, upassword varchar(255)NOT NULL , uname varchar(255)NOT NULL, usex varchar(50));/*向user表插入数据 */ insert into user(uaccount,upassword,uname,usex) values (10018,'123','rose','女'),(10019,'123','jake','男'),(10020,'123','张三','男'),(10021,'1','李四','男'),(10022,'1','李明','男'),(10023,'2','whhh','男'),(10024,'1','王五','女'),(10025,'1','hh','女');2.商品模块

/*创建数据库webgoods*/ CREATE DATABASE webgoods;/*8.0以下版本MySQL执行以下SQL修改字符编码*/ alter database webgoods character set utf8; set names gbk;/*使用数据库webgoods*/USE webgoods;/*创建数据表goods*/ CREATE TABLE goods ( gid int(11) AUTO_INCREMENT PRIMARY KEY, gname varchar(255), gdetails varchar(255), gprice int(11));/*向goods表插入数据*/ insert into goods(gid,gname,gdetails,gprice) values (1,'草莓','可口草莓',4),(2,'苹果','红富士苹果',2),(3,'橙子','金黄的大橙子',4),(4,'葡萄','吐鲁番葡萄',12),(5,'大虾','山东大虾',5),(6,'带鱼','好吃的带鱼',50),(7,'扇贝','大神快来快来',20),(8,'皮皮虾','啥的客户',10),(9,'脉动','不在状态,脉动一下',4),(10,'汽水','栓双',8),(11,'沙棘汁','好喝',3),(12,'和其正','dsa asd',5),(13,'菠菜','大',2),(14,'生菜','asdajlskdja',2),(15,'番茄','好吃',1),(16,'胡萝卜','asdkjlajkld',2);EurekaServer与公共工程的搭建
使用SpringInitializr方式创建一个项目web-store:
后面其他项目均在父工程中创建模块Moudle的方式创建,结构如下:

搭建Eureka Server
搭建eureka-server作为服务中心,是每个Spring Cloud微服务的心脏,所有服务将会注册到Eureka Server中。
步骤:
1.创建项目,引入依赖
2.添加Eureka相关配置
3.定义Security安全控制
4.添加@EnableEurekaServer注解
5.测试运行
步骤1:创建项目,引入依赖
在父工程web-store中创建Moudle,使用Spring Initializr方式创建一个名称为eureka-server的Spring Boot模块,将Artifact命名为eureka-server,在pom.xml文件中添加Eureka Server和Security依赖。
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-security</artifactId><version>2.0.0.RELEASE</version></dependency>注:记得修改