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

基于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>

注:记得修改

Read more

【MySQL数据库基础】(三)MySQL 库的核心操作全解析:创建、修改、备份一条龙搞定

【MySQL数据库基础】(三)MySQL 库的核心操作全解析:创建、修改、备份一条龙搞定

前言         在 MySQL 的学习和实战中,数据库(库)的操作是最基础也是最核心的环节,无论是项目开发、数据管理还是运维维护,都绕不开库的创建、配置、修改、备份等一系列操作。很多刚接触 MySQL 的小伙伴容易在字符集、校验规则、备份恢复这些细节上踩坑,今天这篇文章就结合实战案例,把 MySQL 库的全套操作讲透,从基础语法到高级技巧,从避坑指南到实战演示,让你一文掌握 MySQL 库操作的精髓! 一、创建数据库:基础语法与个性化配置         创建数据库是操作 MySQL 的第一步,看似简单的一句命令,背后却藏着字符集、校验规则的关键配置,选对配置能让后续的开发和数据管理少走很多弯路。 1. 核心创建语法         MySQL 中创建数据库的官方语法如下,其中大写部分为关键字,中括号[]内的为可选项,也是实际开发中需要重点关注的部分: CREATE DATABASE [IF NOT EXISTS]

By Ne0inhk
客户端负载均衡器深度解析 Spring Cloud LoadBalancer与Ribbon源码剖析

客户端负载均衡器深度解析 Spring Cloud LoadBalancer与Ribbon源码剖析

作为有多年Java经验的开发者,我见证了微服务架构中负载均衡技术的演进历程。从最初的集中式负载均衡到现在的客户端负载均衡,技术选型直接决定整个微服务架构的性能和稳定性。今天我将深入解析两大主流客户端负载均衡方案的技术原理、实战应用和选型策略。 目录 ✨ 摘要 1. 客户端负载均衡:微服务架构的"交通指挥官" 1.1 什么是客户端负载均衡? 1.2 为什么需要客户端负载均衡? 2. Ribbon深度源码解析 2.1 Ribbon架构设计 2.2 Ribbon负载均衡算法实现 2.3 Ribbon与Spring Cloud整合 3. Spring Cloud LoadBalancer深度解析 3.1 LoadBalancer架构设计 3.2 LoadBalancer负载均衡算法 3.3 LoadBalancer的自动配置机制 4. 核心机制对比分析 4.1 架构设计对比

By Ne0inhk
Python开发从入门到精通:网络爬虫高级应用与Scrapy框架

Python开发从入门到精通:网络爬虫高级应用与Scrapy框架

《Python开发从入门到精通》设计指南第三十九篇:网络爬虫高级应用与Scrapy框架 一、学习目标与重点 💡 学习目标:掌握Python网络爬虫的高级技巧,包括Scrapy框架、分布式爬虫、动态网页爬取、反爬虫策略等;学习Scrapy、Selenium、BeautifulSoup等库的使用;通过实战案例实现网络爬虫应用。 ⚠️ 学习重点:Scrapy框架、分布式爬虫、动态网页爬取、反爬虫策略、Selenium库、BeautifulSoup库、网络爬虫实战。 39.1 网络爬虫概述 39.1.1 什么是网络爬虫 网络爬虫(Web Crawler)是一种程序,用于自动访问网页并提取信息。网络爬虫的应用场景包括数据分析、搜索引擎、内容聚合等。 39.1.2 网络爬虫的流程 * 发送请求:向网页发送HTTP请求。 * 获取响应:获取网页的HTML内容。 * 解析内容:提取网页中的信息。 * 存储数据:将提取的信息存储到数据库或文件中。

By Ne0inhk