0


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

操作系统:Windows

Java开发包:JDK1.8

项目管理工具:Maven3.6.0

项目开发工具:IntelliJIDEA

数据库:MySQL

Spring Cloud版本:Finchley.SR2

Spring Boot版本:2.0.6.RELEASE

目录

商品模块实现

搭建goods-provider

步骤1:创建项目,引入依赖

在父工程web-store中创建Moudle,使用Spring Initializr方式创建一个名称为goods-provider的Spring Boot项目,将Artifact命名为goods-provider,添加Web、Eureka Client、MyBatis、公共实体类common、MySQL依赖。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version><relativePath/><!-- lookup parent from repository --></parent><groupId>com.bushuo</groupId><artifactId>goods-provider</artifactId><version>0.0.1-SNAPSHOT</version><name>goods-provider</name><description>Demo project forSpringBoot</description><url/><properties><java.version>1.8</java.version></properties><dependencies><!--mybatis依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.1</version></dependency><!--eureka依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--mysql依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Finchley.SR2</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

步骤2:在全局配置文件application.yml中添加Eureka、MySQL以及MyBatis的相关配置

在这里插入图片描述

步骤3:在项目启动类添加@EnableEurekaClient注解

在项目启动类上添加@EnableEurekaClient注解开启Eureka Client功能。
在这里插入图片描述

搭建goods-consumer

步骤1:创建项目,引入依赖

在父工程web-store中创建Moudle,使用Spring Initializr方式创建一个名称为goods-consumer的Spring Boot项目,将Artifact命名为goods-consumer,添加Web、Eureka Client、公共实体类common、Feign、Thymeleaf、Hystrix等依赖。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version><relativePath/><!-- lookup parent from repository --></parent><groupId>com.bushuo</groupId><artifactId>goods-consumer</artifactId><version>0.0.1-SNAPSHOT</version><name>goods-consumer</name><description>Demo project forSpringBoot</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.bushuo</groupId><artifactId>common</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--feign依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.0.0.RELEASE</version></dependency><!--web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--eureka依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--thymeleaf前端模板依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId><version>2.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--hystrix熔断依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId><version>2.0.0.RELEASE</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Finchley.SR2</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

步骤2:在全局配置文件application.yml中添加Eureka和Thymeleaf的相关配置信息

在这里插入图片描述

步骤3:在项目启动类添加@EnableEurekaClient和@EnableFeignClients注解

在项目启动类上添加@EnableEurekaClient注解开启Eureka Client功能,添加@EnableFeignClients注解开启Feign功能。
在这里插入图片描述

查询商品列表

步骤:

1.在工程goods-provider中定义查询商品接口

2.goods-consumer调用goods-provider中的接口实现查询商品功能

  1. 启动测试查询商品信息功能

在这里插入图片描述

步骤1:在工程goods-provider中定义查询商品信息接口

(1)在dao包的GoodsDao接口中,添加查询所有商品信息的方法、根据id查询商品方法
在这里插入图片描述

(2)在resources下的mapper包中的GoodsMapper.xml文件中配置商品查询接口
在这里插入图片描述
(3)在controller包中的GoodsController类中添加查询接口
在这里插入图片描述


goods-consumer程序结构:
在这里插入图片描述

步骤2:在工程goods-consumer中调用goods-provider中的接口实现商品查询功能

(1)在GoodsService接口中编写Feign组件调用goods-provider中接口的查询方法
在这里插入图片描述
(2)在GoodsServiceHystrix类中编写处理查询的熔断处理逻辑
在这里插入图片描述
(3)在GoodsController类中添加退出登录的请求/quit,返回到登录页面
在这里插入图片描述
(4)在GoodsController类中添加查询所有商品列表的请求
在这里插入图片描述
因登录成功后直接跳转到首页显示商品列表,要获取登录名显示在首页上,故修改user-consumer中的UserController中的/login请求如下:
在这里插入图片描述
(5)在resources下的templates目录中创建静态页面

<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns="http://www.w3.org/1999/html"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>首页</title></head><body><div th:if="${session.uname} ne null">

    欢迎您:<em th:text="${session.uname}"></em><br><a href="http://localhost:8005/goods/quit">退出</a></div><div th:if="${session.uname} eq null"><a href="http://localhost:8003/admin/tologin">请您登陆</a></div><h1 align="center">首页</h1><div align="center"><form action="/goods/getName">

        商品名:<input type="text" name="name" placeholder="搜索商品"/><input type="submit" value="搜索"/></form><table style="border:1px solid;width:600px;text-align:center"><thead><tr bgcolor="green"><td>编号</td><td>名称</td><td>操作</td></tr></thead><tbody><tr th:each="good:${goods}"><td th:text="${good.gid}"></td><td th:text="${good.gname}"></td><td><a th:href="@{'http://localhost:8005/goods/detail?id='+${good.gid}}">详情</a><a th:href="@{'http://localhost:8005/goods/deleteGoods?id='+${good.gid}}">删除</a></td></tr></tbody></table><h3><a href="http://localhost:8005/goods/toAddGoods">添加新商品</a></h3><br></div></body></html>

在登录页面上输入正确的用户名密码测试,能否跳转到getAll请求显示商品列表。
不能跳转
http://localhost:8005/goods/getAll?uname=

查询商品详情

商品列表中点击"详情"链接,即可跳转到当前商品详情页面。

思路:点击详情链接的同时,将当前商品的id传递到处理的请求中,根据id查询出当前商品所有具体信息。

(1)在GoodsController类中添加查询商品详情的请求
在这里插入图片描述
(2)在resources下的templates目录中创建静态页面

detail.html:

删除商品
商品列表中点击"删除"链接,即可将当前商品从列表中清除。

思路:点击删除链接的同时,将当前商品的id传递到删除的请求中,根据id从商品表中将当前商品删除。
步骤1:在工程goods-provider中定义商品删除接口
(1)在dao包的GoodsDao接口中,添加删除商品信息的方法、根据id删除商品
在这里插入图片描述
(2)在resources下的mapper包中的GoodsMapper.xml文件中配置商品删除接口
在这里插入图片描述
(3)在controller包中的GoodsController类中添加删除商品接口
在这里插入图片描述
步骤2:在工程goods-consumer中调用goods-provider中的接口实现商品删除功能

(1)在GoodsService接口中添加商品删除方法deleteGoods的声明
在这里插入图片描述
(2)在GoodsServiceHystrix类中编写处理删除的熔断处理逻辑
在这里插入图片描述
(3)在GoodsController类中添加删除商品的请求
在这里插入图片描述
在这里插入图片描述

如果日志是登入失败,查看源码.

总结

基于Spring Cloud的电商系统在用户与商品模块的设计与实现中,注重了系统的安全性、灵活性和用户体验。通过微服务架构,系统不仅能够支持高并发请求,还能方便地进行功能扩展。未来,可以结合人工智能与大数据分析,进一步优化用户推荐系统和库存管理,提升整体运营效率和用户满意度


本文转载自: https://blog.csdn.net/m0_67187271/article/details/143032682
版权归原作者 布说在见 所有, 如有侵权,请联系我们删除。

“基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(下)”的评论:

还没有评论