基于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
数据库设计
/*创建数据库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','女');
/*创建数据库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依赖。
org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.cloud spring-cloud-starter-security 2.0.0