基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)

操作系统:Windows

Java开发包:JDK1.8

项目管理工具:Maven3.6.0

项目开发工具:IntelliJIDEA

数据库:MySQL

Spring Cloud版本:Finchley.SR2

Spring Boot版本:2.0.6.RELEASE

此电商系统包含了用户与商品两个模块的部分功能,用户模块包括用户注册、用户登录;商品模块包括商品展示、商品详情、购物车以及订单。
在这里插入图片描述

开发项目之前,有必要根据项目业务进行分析,设计一套合理的架构。

本系统采用的是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<
### 使用 Spring Cloud 构建电商网站的实战教程 #### 1. 技术选型架构设计 为了构建高性能的大型分布式电商网站,选择合适的技术栈至关重要。对于这类应用,通常会结合多种技术来满足不同的需求。例如,产品详情页面可以通过内容分发网络 (CDN) 静态化处理提高加载速度;而对于高交互性的部分,则可以考虑使用 NoSQL 数据库提升性能[^1]。 ```java // 示例:配置NoSQL数据库连接(如MongoDB) spring.data.mongodb.uri=mongodb://localhost:27017/eCommerceDb ``` #### 2. 微服务网关的选择 在现代电商系统中,API 网关扮演着至关重要的角色。Spring Cloud Gateway 是当前推荐使用的解决方案之一,它不仅提供了强大的路由功能,还集成了安全性监控特性,能够有效管理多个微服务之间的通信[^2]。 ```yaml # 示例:Spring Cloud Gateway 配置文件片段 server: port: 8080 spring: cloud: gateway: routes: - id: product_service_route uri: lb://PRODUCT-SERVICE predicates: - Path=/api/products/** ``` #### 3. 开发环境搭建工具链集成 高效的开发流程离不开良好的开发环境支持。利用 Spring Boot 的自动配置能力以及 DevTools 插件,开发者可以在本地快速启动并调试应用程序。此外,在实际项目中还会引入诸如 Feign Client、Hystrix 断路器等组件以增强系统的稳定性可维护性[^4]。 ```bash # 启动带有热重载特性的Spring Boot 应用程序命令 ./mvnw spring-boot:run -Dspring-boot.run.jvmArguments="-noverify" ``` #### 4. 完整案例分享——个人理财微服务平台 虽然这是一个专注于金融领域的例子,但它同样展示了如何运用 Spring Cloud 生态圈中的各项技术完成一个完整的微服务体系的设计实现过程。此案例涵盖了从基础架构到业务逻辑层面的各种实践要点,非常适合用来学习借鉴[^3]。
评论 75
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布说在见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值