商品后台管理系统(springMVC+spring+Mybatis)总结

环境情况:

基本架构:

后台:

ssm:springMVC+spring+Mybatis
附加功能框架:spring security

前端:

AdminLTE构建基本页面

项目工程基本结构图:

在这里插入图片描述

准备工作:

首先建立Maven父工程:ssm,接下来建立五个子模块:
dao:持久层
domain:实体类
service:业务层
utils:工具类
web:表现层(内含Controller,负责对前端的请求进行接收和处理后的数据返回)

接着,整合ssm框架
整合完毕之后,就在项目中形成了web-service-dao的三层架构,实现各自功能与处理的分离

用户登录界面展示:

在这里插入图片描述

基本功能实现概述:
基于Spring Security进行用户登录与安全验证

Spring Security 是 Spring 项目组中用来提供安全认证服务的框架

实现产品和产品订单的基本管理(CRUD)

思路分析

1.产品管理

以产品查询为例:web层中的Controller接收到前端传递的请求,将请求交给service层处理,service又通过dao层,与数据库交互,得到所需的数据
并逆序传递到Controller中,Controller进行将数据传递到 jsp页面中,最后将结果在前端页面中展示,完成查询。
其他的几种操作思路流程大致相同,不同之处在于持久层与数据库交互时执行不同的操作的 sql语句
在这里插入图片描述
新建产品:
在这里插入图片描述


2.订单管理

与产品查询思路相似
在这里插入图片描述


实现用户以及对应的角色及权限管理(包含用户和角色的CRUD和对应的用户角色权限关联操作,即为对应用户添加角色与权限)

思路分析:

1.基本管理:实现用户,角色,权限的单独管理

与上述产品的基本管理类似,不再赘述
在这里插入图片描述

新建用户:
在这里插入图片描述


在这里插入图片描述

新建角色:

在这里插入图片描述

在这里插入图片描述

2.用户与角色,角色与权限之间的关联操作:

例如为‘xxx’用户赋予特定的角色(例如管理员角色ADMIN),从而使此用户获得此角色对应的权限(例如管理员权限)

在Controller接收到前端请求之后,同样依次交给service和Dao,和数据库交互之后再将数据返回,最后展示在页面上。和前面不同之处在于,和数据交互时,不再是简单的单表增删改查,而是多表之间的关联操作,这里用到多表之间的中间表来关联对应的两张表

例如:给指定用户‘u1’,添加角色和对应的权限,首先要为用户添加角色,首先将查询此用户当前可以添加的角色集合(即不可重复添加已有角色),点击添加按钮后则显示出当前可添加的角色列表,然后选择完毕后再次发出请求,Mybatis代理对象在底层与数据库进行交互,完成角色的添加操作,而给角色添加权限的操作也是类似的思路,实现用户的详细信息展示时,也是通过多表关联的操作(关联查询)将用户的对应角色,权限信息对应进行展示

以下示例为用户及它对应权限信息
在这里插入图片描述

在这里插入图片描述

使用Spring Security实现用户权限的基本管理与操作(根据不同权限级别,用户可执行的操作不同,比如:只有管理员才能更改其他用户的角色与对应的权限信息,或者是:对应管理员才能实现权限管理与后面的访问历史记录进行监控与查看)

思路分析:

1.通过Spring Security实现方法级权限控制,用户权限不足时无法使用对应功能而跳转到权限不足的页面

由于页面中的各个功能在Controller中都对应有具体的实现方法,所以只要控制了用户对于对应方法的调用权限,即实现了用户对于功能使用的权限管理
Spring Security在方法级别的权限控制上
支持三种类型的注解,JSR-250注解、@Secured注解和支持表达式的注解
根据需求使用即可


对于没有对应管理功能权限的用户,点击相关操作按钮会跳转到权限不足的提示页面

在这里插入图片描述

2.通过Spring Security实现页面端的权限控制,用户不具备对应的权限时,在页面中只显示当前权限所能执行的操作

例如:普通只具备单一普通管理员权限角色‘USER’的用户在页面中只能看见普通的产品,订单管理和用户管理等功能按钮
而具备超级管理员角色的超级管理员用户除了基本的功能外,还能够使用用户权限管理,用户操作历史记录监控等功能

首先是具有ADMIN权限的用户的管理界面如下:
在这里插入图片描述
而下面此用户只有普通USER权限,管理列表中不具备部分功能的展示(比如此用户相对于ADMIN用户少了日志管理的功能)

在这里插入图片描述

使用Spring AOP实现后台管理系统的历史记录功能,从而实现后台管理系统用户操作监控的功能

思路分析:
创建一个切面类,配置切入点表达式,对Controller中的所有方法进行监控操作,因为所有功能实现都要在Controller中进行处理,也就是对用户在系统中执行的所有操作进行了一个监控
具体包括监控用户,用户的ip,执行的操作及对应的执行时间从而达到操作记录监控的效果

在这里插入图片描述

除此之外,使用了pagehelper来实现上面的相关的分页查询功能

当数据量特别大时,分页数据展示可以减轻服务器的压力,同时也给用户较好的页面操作体验
…后续有待增加

项目源码Github地址在此处

后续待完善功能:
  • 界面完善,更新好看的界面
  • 完善基本管理(CRUD,,,其中部分功能现在还没完善)
  • 使用redis来给订单实现一个排行榜(按照订单金额排行即可~)
  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值