本文主要内容:
1. 项目概况(含下载)
本项目基于Gitee的开源项目Quella
,进行了部分功能的二次开发。
原项目地址:https://gitee.com/quella01/Quella
本项目地址:https://gitee.com/cxh1231/CMS-Quella-SSM
项目协议:Apache-2.0
原项目的最近一次更新发布于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
格式。
至此,关于此框架的一些常规的使用方法和注意事项,基本介绍完毕。