基于Spring Boot和Shiro的后台管理系统FEBS

QQ截图20180622152148.png FEBS是一个简单高效的后台权限管理系统。项目基础框架采用全新的Java Web开发框架 —— Spring Boot2.0.3,消除了繁杂的XML配置,使得二次开发更为简单;数据访问层采用Mybatis,同时引入了通用Mapper和PageHelper插件,可快速高效的对单表进行增删改查操作,消除了大量传统XML配置SQL的代码;安全框架采用时下流行的Apache Shiro,可实现对按钮级别的权限控制;前端页面使用Bootstrap构建,主题风格为时下Google最新设计语言Material Design,并提供多套配色以供选择。FEBS意指:Fast,Easy use,Beautiful和Safe。

功能模块

系统功能模块组成如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|-------------------------------------------|
| ______ ______ ____ _____ |
| | ____| ____| _ \ / ____| |
| | |__ | |__ | |_) | (___ |
| | __| | __| | _ < \___ \ |
| | | | |____| |_) |____) | |
| |_| |______|____/|_____/ |
| Spring-Boot-Version: 2.0.3.RELEASE |
|-------------------------------------------|

├─系统管理
│ ├─字典管理
│ ├─用户管理
│ ├─菜单管理
│ ├─角色管理
│ └─部门管理
├─系统监控
│ ├─在线用户
│ └─系统日志
├─任务调度
│ ├─定时任务
│ └─调度日志
└─网络资源
├─One一个
│ ├─散文
│ ├─绘画
│ └─语文
├─天气查询
├─影视资讯
│ ├─即将上映
│ └─正在热映
└─每日一文

技术选型

后端

  • 基础框架:Spring Boot 2.0.3.RELEASE

  • 持久层框架:Mybatis 3.4.5

  • 安全框架:Apache Shiro 1.4.0

  • 摸板引擎:Thymeleaf 3.0.9.RELEASE

  • 数据库连接池:阿里巴巴Druid 1.1.10

  • 缓存框架:Ehcache

  • 日志打印:logback

  • 其他:fastjson,poi,javacsv,quartz等。

前端

  • 基础框架:Bootstrap 4

  • JavaScript框架:jQuery

  • 消息组件:Bootstrap notify

  • 提示框插件:SweetAlert2

  • 树形插件:jsTree

  • 树形表格插件:jqTreeGrid

  • 表格插件:BootstrapTable

  • 表单校验插件:jQuery-validate

  • 多选下拉框插件:multiple-select

  • 图表插件:Highcharts

  • 时间插件:daterangepicker

开发环境

  • 语言:Java 8

  • IDE:Eclipse Oxygen & IDEA 2018.1.4(Ultimate Edition)

  • 依赖管理:Maven

  • 数据库:Oracle 11g & MySQL5.7

  • 版本管理:SVN,git

系统预览

f47c1606680527619bc462afea4d068f.png

e3d9fc443686ec84003496d742c783ad.png

2911d8fa7bbe2b6674854a5c7f59de7a.png

48a18207aa79b0e75cfd7258d61dab1e.png

155af0ed234a7fe040666b1b7818d42e.png

57a6c25f7b616fcf4e452da673154960.png

d4973ba38ff475543eab95839b5314dc.png

主题预览

2bbae66a0cc36ea96ca1ffe66951921d.png

a9f57431583b8ed9a5d18b7cf37bd053.png

d8cb6313fd2ee8eb793d443b83a78ce4.png

2bd554ce2511cd1e7e3e7b3b56216ed6.png

5e6d35e4390cf7f0752d7864ad701e2b.png

下载部署

码云地址: https://gitee.com/github-16661027/project

GitHub 地址: https://github.com/wuyouzhuguli/FEBS

下载后以Maven项目的方式导入Eclipse或者IDEA。

开发时直接使用Spring Boot的入口类cc.mrbird.Application启动即可,访问地址localhost:8080,账号mrbird,密码123456。

部署时,使用Maven将项目打包成febs.jar,然后使用命令java -jar febs.jar启动即可。在Linux下部署Spring Boot jar,并编写启停脚本可参考链接https://mrbird.cc/Linux%20Spring-Boot-jar.html

常见问题

如何下载代码

手动下载

下载Oracle版本:

分支选择master,然后点击 download zip即可,如下图所示:

QQ截图20180328094628.png

下载MySQL版本:

分支选择mysql,然后点击 download zip即可,如下图所示:

QQ截图20180328094917.png

Git命令

下载oracle版本:

1
git clone https://github.com/wuyouzhuguli/FEBS.git

下载mysql版本:

1
git clone -b mysql https://github.com/wuyouzhuguli/FEBS.git

Servlet依赖问题

启动项目后报Servlet依赖未找到,比如:

Post-processing of merged bean definition failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletRequest

出现这个问题一般是使用IDEA的同学,解决办法:打开pom文件,然后下图中的<scope>provided</scope>去掉:

QQ截图20180328100233.png

表不存在

这个问题一般出现在Linux环境下的MySQL数据库中,Linux下的MySQL数据库默认开启了大小写敏感,即t_userT_USER是两个完全不同的表。解决办法:

  1. 将代码中的表名大小写改为和数据库一致(不推荐!繁琐又容易出错);

  2. 关闭MySQL大小写敏感,可参考:https://blog.csdn.net/fdipzone/article/details/73692929

Oracle驱动依赖问题

以ojdbc6为例,由于版权的原因,我们需要将ojdbc6.jar依赖安装到本地的maven仓库,然后才可以在pom中进行配置。

下载ojdbc6.jar文件后,将其放到比较好找的目录下,比如D盘根目录。然后运行以下命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\Users\Administrator>mvn install:install-file -Dfile=D:/ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=6.0 -
Dpackaging=jar -DgeneratePom=true
...
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ standalone-pom ---
[INFO] Installing D:\ojdbc6.jar to D:\m2\repository\com\oracle\ojdbc6\6.0\ojdbc6-6.0.jar
[INFO] Installing C:\Users\ADMINI~1\AppData\Local\Temp\mvninstall9103688544010617483.pom to D:\m2\repository\com\oracle\ojdbc
6\6.0\ojdbc6-6.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.940 s
[INFO] Finished at: 2017-08-13T15:06:38+08:00
[INFO] Final Memory: 6M/145M
[INFO] ------------------------------------------------------------------------

接着在pom中引入:

1
2
3
4
5
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>6.0</version>
</dependency>

这里的groupid就是你之前安装时指定的-Dgroupid的值,artifactid就是你安装时指定的-Dartifactid的值,version也一样。

请作者喝瓶肥宅水🥤

0