# 基于SSM+Shiro+Redis+Layui的内容管理系统 **Repository Path**: yusongxing/CMS-Quella-SSM ## Basic Information - **Project Name**: 基于SSM+Shiro+Redis+Layui的内容管理系统 - **Description**: Quella,是基于SSM+Shiro+Redis+Layui的内容管理系统。本项目在Quella的基础上,进行了示例开发,主要是方便更好地理解和使用此框架。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2022-01-26 - **Last Updated**: 2022-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 基于SSM+Shiro+Redis+Layui的内容管理系统 ### 1. 前言 本项目基于Gitee的开源项目`Quella`,进行了部分功能的二次开发。 原项目地址:https://gitee.com/quella01/Quella 原项目协议:[Apache-2.0](https://gitee.com/quella01/Quella/blob/master/LICENSE) 原项目的最近一次更新发布于2019年1月,所以某些依赖有点过时。 但是此`脚手架`集成了一些通用的`后台功能`,如`菜单`设置、`权限`控制等,以及集成了常用的第三方服务,如`七牛云存储`、`第三方支付`等,其`开发模式`还是值得学习和借鉴的。 并且,使用此脚手架能够`快速进行后台管理系统的开发`,非常适合敏捷开发。 下文,是基于此框架进行的二次开发,记录了详细的开发过程。 > 下文部分内容来自原仓库的说明文档和官方开发文档。 ### 2. 项目演示 > 以下功能是原始系统的功能。 1、后台登录页面: ![图:登录页](https://img.zxdmy.com/md/20210617203528.png) > 初始密码:admin 2、后台主页: ![图:后台主页](https://img.zxdmy.com/md/20210617203535.png) > 点击右上角的用户名`ssrs`,点击`设置`,可以切换成`选择卡`视图,就是下面这种,每个页面带 x 的样式。 3、菜单设置: ![图:菜单设置页](https://img.zxdmy.com/md/20210617203636.png) 4、权限设置: ![图:权限设置页](https://img.zxdmy.com/md/20210617203639.png) 5、管理员设置: ![图:管理员设置页](https://img.zxdmy.com/md/20210617203644.png) 6、角色设置: ![图:角色设置页](https://img.zxdmy.com/md/20210617203650.png) > 以下功能是在原始框架中,进行的二次开发。 7、教室信息管理 ![图:教室信息页面](https://img.zxdmy.com/md/20210617203654.png) 8、设备信息管理: ![图:设备信息页面](https://img.zxdmy.com/md/20210617203658.png) 9、新增设备: ![图:新增设备页](https://img.zxdmy.com/md/20210617203701.png) 10、模糊查询: ![图:模糊查询页](https://img.zxdmy.com/md/20210617203704.png) 11、图表统计: ![图:统计页](https://img.zxdmy.com/md/20210617203711.png) ### 3. 快速部署 #### 3.1 架构说明 - 前端框架:基于Layui的kit-admin - 页面模板:采用 FreeMaker 与 JSP 双视图 - 后端主要框架:Spring + SpringMVC + MybatisPlus + Shiro + Redis - Redis:分布式 session 与 分布式缓存 - Quartz:任务调度方案 - ElasticSearch:全文检索与数据分析方案 #### 3.2 环境说明 + JDK 1.8 + Tomcat 7.0及以上 + MySQL 5.7 + Redis 3.0及以上 + ElasticSearch 6.4.2(非必须) + 开发工具IDEA(需要安装Lombok插件) > 以上环境,除了JDK、Tomcat、MySQL是必须的,`Redis也是必须的`,否则无法登录系统。 > > ElasticSearch 不是必须的。 > > 如果是Windows系统,建议使用`一键安装的Redis`。 > > 地址:https://github.com/MicrosoftArchive/redis/releases > > 下载3.2或3.0版本的`msi`文件,一键安装即可使用。 > > 推荐使用的`Redis数据库可视化工具`:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases #### 3.3 项目搭建详细过程 1、`克隆`项目至本地; ![图:项目的主要文件](https://img.zxdmy.com/md/20210617203716.png) 2、使用IDEA`导入项目`; ![图:导入项目1](https://img.zxdmy.com/md/20210617203718.png) 3、选择`Maven`项目类型; ![图:导入项目2](https://img.zxdmy.com/md/20210617203722.png) 4、勾选`Maven自动导入`; ![图:导入项目3](https://img.zxdmy.com/md/20210617203724.png) 5、勾选需要导入的Maven项目; ![图:导入项目4](https://img.zxdmy.com/md/20210617203727.png) 6、选择`JDK版本`; ![图:导入项目5](https://img.zxdmy.com/md/20210617203730.png) 7、设置`项目名`; ![图:导入项目6](https://img.zxdmy.com/md/20210617203732.png) 8、导入的`项目完整结构`; ![图:导入成功后的项目结构](https://img.zxdmy.com/md/20210617203734.png) 9、右击`resources`文件夹,将其设置为`资源根目录`(右击→Make Dictionary as→Resources Root); 10、右击`Test`文件夹,将其设置为`测试资源根目录`(右击→Make Dictionary as→Test Sources Root); ![图:设置成功后的资源文件夹](https://img.zxdmy.com/md/20210617203736.png) 11、配置`Tomcat`; ![图:配置Tomcat-1](https://img.zxdmy.com/md/20210617203739.png) ![图:配置Tomcat-2](https://img.zxdmy.com/md/20210617203741.png) ![图:配置Tomcat-3](https://img.zxdmy.com/md/20210617203744.png) ![图:配置Tomcat-4](https://img.zxdmy.com/md/20210617203747.png) ![图:配置Tomcat-5](https://img.zxdmy.com/md/20210617203750.png) 12、`导入SQL脚本`文件至自己的数据库; ![图:数据库表](https://img.zxdmy.com/md/20210617203753.png) 13、配置`数据库信息`; ![图:配置数据库信息](https://img.zxdmy.com/md/20210617203756.png) 14、配置`Redis信息`(一般不需要修改); ![图:配置Redis](https://img.zxdmy.com/md/20210617203758.png) 15、`启动Redis服务`(一般安装完成后,自动启动); 16、`运行`项目; 17、浏览器自动跳转至`登录页面`。 ### 4. 快速上手 如何快速开发你需要管理的表呢? 下文的内容将解答你的疑惑。 #### 4.1 一些建议 **新建表**: 系统默认表的前缀是ssrs,为了区别于系统表,`新建表`的名字建议使用其他前缀,如示例中的前缀table; **后台开发**: 系统默认的后台项目文件,均在`com.ssrs`包下,如controller、model等。 为了区别于系统文件,在`com.ssrs`目录新建了一个名为`dev`的包,新编写的model、service、controller等文件,建议写在这里,如下图: ![图:自己后台目录](https://img.zxdmy.com/md/20210617203802.png) **前端开发**: 在 `webapp` 文件夹下,有一些静态资源,如css、js等,这是公共的。 在 `webapp/WEB-INF/ftl` 目录下,有一些系统默认的页面。 为了区别于系统默认的页面,在`该目录`下新建了一个名为`devPages`的文件夹,新编写的页面,建议写在这个文件夹下,如下图: ![图:自己前端目录](https://img.zxdmy.com/md/20210617203804.png) #### 4.2 添加菜单 启动项目后,即可进入`项目后台`。 在项目后台页面,访问 `系统设置>>菜单设置`,点击 `新增`,即可为系统`左侧菜单栏`新增一个菜单,如下图: ![图:添加菜单](https://img.zxdmy.com/md/20210617203807.png) 这里注意,新增的菜单有两种类型:`顶级菜单`和`二级菜单`。 如果新增的是一个`顶级菜单`,在`没有为其添加二级菜单的情况下,是不会在左侧显示的`。 **顶级菜单**的填写示例: ![图:顶级菜单填写示例](https://img.zxdmy.com/md/20210617203810.png) **二级菜单**的填写示例: ![图:二级菜单填写示例](https://img.zxdmy.com/md/20210617203812.png) 链接标题、排序、权限名称,是可以任意填写的。 最重要的是`链接地址`,其地址,必须对应`controller`中的`RequestMapping`,否则无法实现响应和页面加载,如下图: ![图:控制层示例](https://img.zxdmy.com/md/20210617203815.png) #### 4.3 设置权限 本系统中的每个`请求`(即每个链接),都可以为其`设置权限`。 一般来说,每个表单的增删改查,需要设置权限,并根据实际需求,为每个角色分配不同的权限。 在项目后台页面,访问 `系统设置>>权限设置`,点击 `新增`,即可为系统中的`链接增加权限`: ![图:新增权限](https://img.zxdmy.com/md/20210617203818.png) 这里需要注意,`权限Action`的填写方式,和上文添加二级菜单的Action,一致。 然后,就可以将这些权限分配给每个角色,如下图: ![图:分配权限](https://img.zxdmy.com/md/20210617203820.png) 点击上图`所获权限`的`输入框`(非 ×),即可展开`权限树`,勾选提交即可。 #### 4.4 使用逆向工程生成代码 当我们的数据库中增加`新的表单`后,针对该表单的model、service、mapper、controller等文件,均`不需要手动创建`,可以直接使用项目提供的`代码生成示例`,一键生成。 首先使用和修改的信息,如下图所示: ![图:逆向工程生成代码](https://img.zxdmy.com/md/20210617203823.png) 然后`右击`,`运行`,即可生成各个文件。 ![图:运行](https://img.zxdmy.com/md/20210617203826.png) 上图示例代码生成的`6个文件`,如下图所示: ![图:逆向工程生成的代码](https://img.zxdmy.com/md/20210617203829.png) 最后,也是`最重要`的,把`xml`文件中的`开启二级缓存部分注释掉`!,如下图: ![图:注释二级缓存](https://img.zxdmy.com/md/20210617203832.png) #### 4.5 添加前端页面 在`devPages`目录下,可以新增自己的一些页面,如添加页面、更新页面等,需要注意,添加的页面后缀应为`ftl`格式。 ![图:自己编写的页面示例](https://img.zxdmy.com/md/20210617203835.png) 至此,关于此框架的一些常规的使用方法和注意事项,基本介绍完毕。 ### 5. 下载 如果想更进一步了解此框架,可`下载本项目`,对源码进行详细的分析和学习。 ### LICENSE Apache-2.0