spring|整合springmvc + shiro + mybatis + Thymeleaf后台管理源码分享
基于SpringBoot,目标是实现公司后台管理以及部分的自动办公,现阶段整合springmvc + shiro + mybatis + Thymeleaf等常见框架,包含用户管理、部门管理、通知管理、日志管理、便签、角色管理、菜单配置 、请假、请假审核、代码生成模块。
功能介绍:
- 用户管理
- 部门管理模块
- 通知管理
- 修改密码
- 登陆日志
- 操作日志
- 便签
- 角色管理
- 请假
- 假期审核
- 代码生成
- 项目基于SpringBoot,简化了大量的配置和Maven依赖。
- 日志记录系统,记录用户的登陆、登出,用户执行的操作,通过@BizLog注解以及Spring中的AOP功能,记录了具体到用户的业务操作、登入登出,并且可以下载excel格式,方便查看。
- 利用Thymeleaf使得前端html代码看起来更加清晰。
- 通过角色管理来配置菜单,达到菜单为不同部门显示的目的,间接实现了权限的管理。
- 创建表后,通过LinGenerater类可生成包括html、js、Dao、Service、Controller等代码,复制进项目可直接使用。
@Configuration
public class ShiroConfig {
/**
* 安全管理器
* @param rememberMeManager
* @return
*/
@Bean
public DefaultWebSecurityManager securityManager(CookieRememberMeManager rememberMeManager){
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRememberMeManager(rememberMeManager);
securityManager.setRealm(this.shiroDbRealm());
return securityManager;
}
@Bean
public ShiroDbRealm shiroDbRealm(){
return new ShiroDbRealm();
}
代码生成 项目借助Mybatis Plus代码生成器生成Bean以及Dao,通过Velocity生成Controller、Service、ServiceImpl、html、js文件。在数据库中创建新表后,代码生成文件即可根据此表生成上述文件,实现了基本的表格展示、增删改查功能,可直接复制进项目中直接使用,添加菜单数据到数据库,即可在项目中看到此菜单页面。
public static void main(String[] args) throws IOException {
//参数为表名
LinGenerater lg = new LinGenerater("thing");
//此方法可以生成代码
lg.execute();
//此方法可以插入菜单数据
lg.insertMenu("thing", "测试生成", "globe");
}
日志记录 日志记录通过aop(LogAop类)方式对所有包含@BizLog注解的方法进行aop切入,通过@Bizlog注解中的value属性来获取用户所做的操作,封装为日志类,异步存入数据库中(通过
ScheduledThreadPoolExecutor类)。
@Pointcut("@annotation(com.du.lin.annotation.BizLog)")
public void logCut() {}
使用Thymeleaf使得html代码更简洁 下面是便签功能实现的部分片段。 后端:
List list = service.getUserMemoList();
request.setAttribute("memolist", list);
前端html:
所用框架 前端
- Bootstrap
- jQuery
- jqGrid
- jstree
- SweetAlert
- SpringBoot
- MyBatis Plus
- Spring
- Thymeleaf
- Ehcache
- Kaptcha
- Shiro
- Velocity
文章图片
用户管理界面
文章图片
通知管理
文章图片
登陆日志界面
文章图片
修改密码
【spring|整合springmvc + shiro + mybatis + Thymeleaf后台管理源码分享】
文章图片
便签界面
文章图片
角色管理
文章图片
项目源码获取方式:点击这里查看获取方式
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 2018-07-09|2018-07-09 Spring 的DBCP,c3p0
- spring|spring boot项目启动websocket
- Spring|Spring Boot 整合 Activiti6.0.0
- Spring集成|Spring集成 Mina
- springboot使用redis缓存
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了
- Spring|Spring Boot之ImportSelector