正文 基于SSM+Shiro+Redis+Layui的内容管理系统 拾年之璐 V管理员 /2021-06-16 /1236 阅读 0616 ## 基于SSM+Shiro+Redis+Layui的内容管理系统 [TOC] ### 1. 前言 本项目基于Gitee的开源项目`Quella`,进行了部分功能的二次开发。 原项目地址:https://gitee.com/quella01/Quella 原项目协议:[Apache-2.0](https://gitee.com/quella01/Quella/blob/master/LICENSE) 本项目地址:https://gitee.com/ZXAcademy/CMS-Quella-SSM 原项目的最近一次更新发布于2019年1月,所以某些依赖有点过时。 但是此`脚手架`集成了一些通用的`后台功能`,如`菜单`设置、`权限`控制等,以及集成了常用的第三方服务,如`七牛云存储`、`第三方支付`等,其`开发模式`还是值得学习和借鉴的。 并且,使用此脚手架能够`快速进行后台管理系统的开发`,非常适合敏捷开发。 下文,是基于此框架进行的二次开发,记录了详细的开发过程。 > 下文部分内容来自原仓库的说明文档和官方开发文档。 ### 2. 项目演示 > 以下功能是原始系统的功能。 1、后台登录页面:  > 初始密码:admin 2、后台主页:  > 点击右上角的用户名`ssrs`,点击`设置`,可以切换成`选择卡`视图,就是下面这种,每个页面带 x 的样式。 3、菜单设置:  4、权限设置:  5、管理员设置:  6、角色设置:  > 以下功能是在原始框架中,进行的二次开发。 7、教室信息管理  8、设备信息管理:  9、新增设备:  10、模糊查询:  11、图表统计:  ### 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、`克隆`项目至本地;  2、使用IDEA`导入项目`;  3、选择`Maven`项目类型;  4、勾选`Maven自动导入`;  5、勾选需要导入的Maven项目;  6、选择`JDK版本`;  7、设置`项目名`;  8、导入的`项目完整结构`;  9、右击`resources`文件夹,将其设置为`资源根目录`(右击→Make Dictionary as→Resources Root); 10、右击`Test`文件夹,将其设置为`测试资源根目录`(右击→Make Dictionary as→Test Sources Root);  11、配置`Tomcat`;      12、`导入SQL脚本`文件至自己的数据库;  13、配置`数据库信息`;  14、配置`Redis信息`(一般不需要修改);  15、`启动Redis服务`(一般安装完成后,自动启动); 16、`运行`项目; 17、浏览器自动跳转至`登录页面`。 ### 4. 快速上手 如何快速开发你需要管理的表呢? 下文的内容将解答你的疑惑。 #### 4.1 一些建议 **新建表**: 系统默认表的前缀是ssrs,为了区别于系统表,`新建表`的名字建议使用其他前缀,如示例中的前缀table; **后台开发**: 系统默认的后台项目文件,均在`com.ssrs`包下,如controller、model等。 为了区别于系统文件,在`com.ssrs`目录新建了一个名为`dev`的包,新编写的model、service、controller等文件,建议写在这里,如下图:  **前端开发**: 在 `webapp` 文件夹下,有一些静态资源,如css、js等,这是公共的。 在 `webapp/WEB-INF/ftl` 目录下,有一些系统默认的页面。 为了区别于系统默认的页面,在`该目录`下新建了一个名为`devPages`的文件夹,新编写的页面,建议写在这个文件夹下,如下图:  #### 4.2 添加菜单 启动项目后,即可进入`项目后台`。 在项目后台页面,访问 `系统设置>>菜单设置`,点击 `新增`,即可为系统`左侧菜单栏`新增一个菜单,如下图:  这里注意,新增的菜单有两种类型:`顶级菜单`和`二级菜单`。 如果新增的是一个`顶级菜单`,在`没有为其添加二级菜单的情况下,是不会在左侧显示的`。 **顶级菜单**的填写示例:  **二级菜单**的填写示例:  链接标题、排序、权限名称,是可以任意填写的。 最重要的是`链接地址`,其地址,必须对应`controller`中的`RequestMapping`,否则无法实现响应和页面加载,如下图:  #### 4.3 设置权限 本系统中的每个`请求`(即每个链接),都可以为其`设置权限`。 一般来说,每个表单的增删改查,需要设置权限,并根据实际需求,为每个角色分配不同的权限。 在项目后台页面,访问 `系统设置>>权限设置`,点击 `新增`,即可为系统中的`链接增加权限`:  这里需要注意,`权限Action`的填写方式,和上文添加二级菜单的Action,一致。 然后,就可以将这些权限分配给每个角色,如下图:  点击上图`所获权限`的`输入框`(非 ×),即可展开`权限树`,勾选提交即可。 #### 4.4 使用逆向工程生成代码 当我们的数据库中增加`新的表单`后,针对该表单的model、service、mapper、controller等文件,均`不需要手动创建`,可以直接使用项目提供的`代码生成示例`,一键生成。 首先使用和修改的信息,如下图所示:  然后`右击`,`运行`,即可生成各个文件。  上图示例代码生成的`6个文件`,如下图所示:  最后,也是`最重要`的,把`xml`文件中的`开启二级缓存部分注释掉`!,如下图:  #### 4.5 添加前端页面 在`devPages`目录下,可以新增自己的一些页面,如添加页面、更新页面等,需要注意,添加的页面后缀应为`ftl`格式。  至此,关于此框架的一些常规的使用方法和注意事项,基本介绍完毕。 ### 5. 下载 如果想更进一步了解此框架,可`下载本项目`,对源码进行详细的分析和学习。 下载地址:https://gitee.com/ZXAcademy/CMS-Quella-SSM 本文采用创作共用版权 CC BY-NC-SA 3.0 CN 许可协议,转载或复制请注明出处! -- 展开阅读全文 --