zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然--SPRING BOOT--电子商务平台的设计与实现(Thymeleaf+MyBatis)--设计部分

    系统功能需求
    
        1.后台管理子系统
        后台管理子系统要求管理员登录成功后,才能对商品进行管理,包括添加商品、查询商品、修改商品以及删除商品。除商品管理外,管理员还需要对商品类型、注册用户以及用户的订单等进行管理。
        2.电子商务子系统
        1)非注册用户
        非注册用户或未登录用户具有的功能如下:浏览首页、查看商品详情以及搜索商品的功能。
        2)用户
        成功登录的用户除具有未登录用户具有的功能外,还具有购买商品、查看购物车、收藏商品、查看订单、查看收藏以及查看用户个人信息的功能。
    系统模块划分

     

    数据库设计

    系统管理
    添加相关依赖
    
        新建一个基于Thymeleaf的Spring Boot Web应用eBusiness,在eBusiness应用中开发本系统。除了STS快速创建基于Thymeleaf的Spring Boot Web应用自带的spring-boot-starter-thymeleaf和spring-boot-starter-web依赖外,还需要向eBusiness应用的pom.xml文件中添加上传文件依赖commons-fileupload、MyBatis与Spring整合依赖mybatis-spring-boot-starter以及MySQL连接器依赖。
    HTML页面及静态资源管理
    
        系统由后台管理和电子商务两个子系统组成,为了方便管理,两个子系统的HTML页面分开存放。在src/main/resources/templates/admin目录下存放与后台管理子系统相关的HTML页面;在src/main/resources/templates/user目录下存放与电子商务子系统相关的HTML页面;在src/main/resources/static目录下存放与整个系统相关的BootStrap及jQuery。
    1.后台管理子系统
    
    管理员在浏览器的地址栏中输入http://localhost:8080/eBusiness/admin/toLogin访问登录页面,登录成功后,进入后台查询商品页面(selectGoods.html)
    
    2.电子商务子系统
    
    注册用户或游客在浏览器的地址栏中输入http://localhost:8080/eBusiness可以访问电子商务子系统的首页(index.html)
    配置文件
    
    server.servlet.context-path=/eBusiness
    #数据库地址
    spring.datasource.url=jdbc:mysql://localhost:3306/shop?characterEncoding=utf8
    #数据库用户名
    spring.datasource.username=root
    #数据库密码
    spring.datasource.password=root
    #数据库驱动
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    #设置包别名(在Mapper映射文件中直接使用实体类名)
    mybatis.type-aliases-package=com.ch.ebusiness.entity
    #告诉系统在哪里去找mapper.xml文件(映射文件)
    mybatis.mapperLocations=classpath:mappers/*.xml
    #在控制台输出SQL语句日志
    logging.level.com.ch.ebusiness.repository=debug
    #关闭Thymeleaf模板引擎缓存(使页面热部署),默认是开启的
    spring.thymeleaf.cache=false
    #上传文件时,默认单个上传文件大小是1MB,max-file-size设置单个上传文件大小
    spring.servlet.multipart.max-file-size=50MB
    #默认总文件大小是10MB,max-request-size设置总上传文件大小
    spring.servlet.multipart.max-request-size=500MB
    组件设计
    
    管理员登录权限验证
    
        从系统分析得知,管理员成功登录后,才能管理商品、商品类型、用户、订单等功能模块。因此,本系统需要对这些功能模块的操作进行管理员登录权限控制。在com.ch.ebusiness.controller.admin包中创建AdminBaseController控制器类,该类中有一个@ModelAttribute注解的方法isLogin。isLogin方法的功能是判断管理员是否已成功登录。需要进行管理员登录权限控制的控制器类继承AdminBaseController类即可,因为带有@ModelAttribute注解的方法首先被控制器执行。
    前台用户登录权限验证
    
        从系统分析得知,用户成功登录后,才能购买商品、收藏商品、查看购物车、我的订单以及个人信息。与管理员登录权限验证同理,在com.ch.ebusiness.controller.before包中创建BeforeBaseController控制器类,该类中有一个@ModelAttribute注解的方法isLogin。isLogin方法的功能是判断前台用户是否已成功登录。需要进行前台用户登录权限控制的控制器类继承BeforeBaseController类即可。
    验证码
    
    1.创建产生验证码的控制器类
        在com.ch.ebusiness.controller.before包中,创建产生验证码的控制器类ValidateCodeController
    
    2.使用验证码
        在需要验证码的HTML页面中,调用产生验证码的控制器显示验证码,示例代码片段如下:
    <td>
        <input type="text" class="form-control"
            placeholder="请输入验证码" th:field="*{code}"/>
    </td>
    <td>
        <img th:src="@{/validateCode}" id="mycode">
    </td>
    <td>
        <a href="javascript:refreshCode()">看不清换一张</a>
    </td>
    统一异常处理
    
        系统对未登录异常、数据库操作异常以及程序未知异常进行了统一异常处理。
    
    1.创建未登录自定义异常
    创建未登录自定义异常NoLoginException。
    2.创建统一异常处理类
    使用注解@ControllerAdvice和@ExceptionHandler创建统一异常处理类GlobalExceptionHandleController。使用注解@ControllerAdvice的类是一个增强的Controller类,在增强的控制器类中使用@ExceptionHandler注解的方法对所有控制器类进行统一处理异常。
    @ControllerAdvice
    public class GlobalExceptionHandleController {
        @ExceptionHandler(value=Exception.class)
        public String exceptionHandler(Exception e, Model model) {
            String message = "";
            //数据库异常
            if (e instanceof SQLException) {
                message = "数据库异常";
            } else if (e instanceof NoLoginException) {
                message = "未登录异常";
            } else {//未知异常
                message =  "未知异常";
            }
            model.addAttribute("mymessage",message);
            return "myError";
        }
    }
    工具类
    
      本系统使用的工具类有两个:MD5Util和MyUtil。
    
    后台管理子系统的实现
    
    管理员登录
    类型管理
    添加商品
    查询商品
    修改商品
    删除商品
    查询订单
    用户管理
    安全退出
    前台电子商务子系统的实现
    
    导航栏及首页搜索
    推荐商品及最新商品
    用户注册
    用户登录
    商品详情
    收藏商品
    购物车
    下单
    个人信息
    我的收藏
    我的订单
  • 相关阅读:
    【JAVA笔记——道】JAVA对象销毁
    【JAVA笔记——道】并发编程CAS算法
    httpClientUtil的get请求
    python基础 day11 下 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业
    python基础 day11 上 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 事务 索引 python 操作mysql ORM sqlachemy学习
    Python基础 Day10 Gevent协程 SelectPollEpoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 RedisMemcached缓存 Paramiko SSH Twsited网络框架
    python基础 day9 进程、与线程区别 python GIL全局解释器锁 线程 进程
    python基础 day8 Socket语法及相关 SocketServer实现多并发
    python基础 day7 面向对象高级语法部分 异常处理 异常处理 Socket开发基础
    python基础 day6 面向对象的特性:封装、继承、多态 类、方法、
  • 原文地址:https://www.cnblogs.com/tszr/p/15381189.html
Copyright © 2011-2022 走看看