# Guns V5.0
## 介绍
Guns基于SpringBoot 2,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架! 2018目标 `更简洁`,`更规范`!
### Guns v5.0更新内容
> * 剔除了shiro,集成自研单点登陆框架,详情见`sso`分支(shiro版本还是在master分支),点击进入sso分支[https://gitee.com/naan1993/guns/tree/sso/](https://gitee.com/naan1993/guns/tree/sso/)
### Guns v4.0更新内容
> * guns-admin提供rest api服务,并以jwt方式鉴权,所有以`/gunsApi`开头的接口走这种鉴权方式,其他接口仍为shiro鉴权
> * spring boot升级到2.0版本!
> * 简化前端所有的html,js,css等资源文件,由11.8MB缩减为4.8MB!
> * 新增手动增加标签页的方法,Feng.newCrontab(href,menuName);
> * laydate时间插件和layer弹出层插件更新为官网最新,可以看着layui官网的文档直接开发啦!
> * 去掉animate动画效果,加快页面响应速度!
> * 修复登陆后重启应用造成404的bug!
> * 增强core模块的功能,拿来即用开发新的模块的后端管理系统!
> * 升级各个依赖包的版本!
> * 简化applicatioin.yml的配置,一些固定不变的配置写在core模块的default-config.properties!
> * 简化多数据源配置,简化mybatis-plus的配置!
> * 优化日志记录格式和策略,详情见logback-spring.xml!
> * 修复菜单折叠无法折叠子菜单的子菜单的bug!
> * 感谢Guns and Roses技术交流2群网友摇了摇头(931483459)提供的oracle版本的Guns,现在已上传到oracle分支
### Guns v3.0更新内容
> * Guns v3.0新增rest api服务,提供对接服务端接口的支持,并利用jwt token鉴权机制给予客户端的访问权限,传输数据进行md5签名保证传输过程数据的安全性!
> * Guns v3.1新增集成工作流引擎flowable6.2.0!
## 最新Guns技术文档
Guns框架有作者在业余时间整理的技术文档,详情点击[查看详情](https://gitee.com/naan1993/guns/wikis/pages?title=Guns%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3&parent=)
## 最新Guns视频教程
Guns框架有作者在业余时间录制的视频教程,详情点击[教程介绍](https://gitee.com/naan1993/guns/wikis/pages?title=Guns%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B&parent=)
## 技术讨论 & [wiki地址](https://gitee.com/naan1993/guns/wikis/Home)
如果对项目有任何疑问或者建议,欢迎加入Guns技术交流1群:254550081,Guns技术交流2群:684163663,Guns技术交流3群:207434260(加之前先看下文档guns-admin/doc/Guns技术文档 v1.0.pdf)
## 管理系统功能
1.用户管理 2.角色管理 3.部门管理 4.菜单管理 5.字典管理 6.业务日志 7.登录日志 8.监控管理 9.通知管理 10.代码生成
## 项目特点
1. 基于SpringBoot,简化了大量项目配置和maven依赖,让您更专注于业务开发,独特的分包方式,代码多而不乱。
2. 完善的日志记录体系,可记录登录日志,业务操作日志(可记录操作前和操作后的数据),异常日志到数据库,通过@BussinessLog注解和LogObjectHolder.me().set()方法,业务操作日志可具体记录哪个用户,执行了哪些业务,修改了哪些数据,并且日志记录为异步执行,详情请见@BussinessLog注解和LogObjectHolder,LogManager,LogAop类。
3. 利用beetl模板引擎对前台页面进行封装和拆分,使臃肿的html代码变得简洁,更加易维护。
4. 对常用js插件进行二次封装,使js代码变得简洁,更加易维护,具体请见webapp/static/js/common文件夹内js代码。
5. 利用ehcache框架对经常调用的查询进行缓存,提升运行速度,具体请见ConstantFactory类中@Cacheable标记的方法。
6. controller层采用map + warpper方式的返回结果,返回给前端更为灵活的数据,具体参见com.stylefeng.guns.modular.system.warpper包中具体类。
7. 防止XSS攻击,通过XssFilter类对所有的输入的非法字符串进行过滤以及替换。
8. 简单可用的代码生成体系,通过SimpleTemplateEngine可生成带有主页跳转和增删改查的通用控制器、html页面以及相关的js,还可以生成Service和Dao,并且这些生成项都为可选的,通过ContextConfig下的一些列xxxSwitch开关,可灵活控制生成模板代码,让您把时间放在真正的业务上。
9. 控制器层统一的异常拦截机制,利用@ControllerAdvice统一对异常拦截,具体见com.stylefeng.guns.core.aop.GlobalExceptionHandler类。
10. 页面统一的js key-value单例模式写法,每个页面生成一个唯一的全局变量,提高js的利用效率,并且有效防止多个人员开发引起的函数名/类名冲突,并且可以更好地去维护代码。
## 基于javabean方式的spring配置
Guns以简洁为核心,抛弃了传统的易错,臃肿xml配置,采用javabean的方式配置spring,简化了项目的配置,如下示例为配置mybatis-plus和数据源:
```
@Configuration
@MapperScan(basePackages = {"com.stylefeng.guns.modular.*.dao", "com.stylefeng.guns.common.persistence.dao"})
public class MybatisPlusConfig {
@Autowired
DruidProperties druidProperties;
/**
* mybatis-plus分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setDialectType(DBType.MYSQL.getDb());
return paginationInterceptor;
}
}
```
## 业务日志记录
日志记录采用aop(LogAop类)方式对所有包含@BussinessLog注解的方法进行aop切入,会记录下当前用户执行了哪些操作(即@BussinessLog value属性的内容),如果涉及到数据修改,会取当前http请求的所有requestParameters与LogObjectHolder类中缓存的Object对象的所有字段作比较(所以在编辑之前的获取详情接口中需要缓存被修改对象之前的字段信息),日志内容会异步存入数据库中(通过ScheduledThreadPoolExecutor类)。
## beetl对前台页面的拆分与包装
例如,把主页拆分成三部分,每个部分单独一个页面,更加便于维护
```
<!--左侧导航开始-->
@include("/common/_tab.html"){}
<!--左侧导航结束-->
<!--右侧部分开始-->
@include("/common/_right.html"){}
<!--右侧部分结束-->
<!--右侧边栏开始-->
@include("/common/_theme.html"){}
<!--右侧边栏结束-->
```
以及对重复的html进行包装,使前端页面更加专注于业务实现,例如,把所有页面引用包进行提取
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="renderer" content="webkit" /><!-- 让360浏览器默认选择webkit内核 -->
<!-- 全局css -->
<link rel="shortcut icon" href="${ctxPath}/static/favicon.ico">
<!-- 全局js -->
<script src="${ctxPath}/static/js/jquery.min.js?v=2.1.4"></script>
<body class="gray-bg">
<div class="wrapper wrapper-content">
${layoutContent}
</div>
<script src="${ctxPath}/static/js/content.js?v=1.0.0"></script>
</body>
</html>
```
开发页面时,只需编写如下代码即可
```
@layout("/common/_container.html"){
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>部门管理</h5>
</div>
<div class="ibox-content">
//自定义内容
</div>
</div>
</div>
</div>
<script src="${ctxPath}/static/modular/sys
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringBoot,更简洁的后台管理系统 Guns
共482个文件
java:262个
js:66个
html:34个
需积分: 50 32 下载量 78 浏览量
2018-09-24
21:44:11
上传
评论 5
收藏 3.49MB ZIP 举报
温馨提示
功能简介 1. 用户管理 2. 角色管理 3. 部门管理 4. 菜单管理 5. 字典管理 6. 业务日志 7. 登录日志 8. 监控管理 9. 通知管理 10. 代码生成 所用框架 前端 1. Bootstrap v3.3.6 2. jQuery v2.1.4 3. bootstrap-table v1.9.0 4. layer v2.1 5. zTree core v3.5.28 6. WebUploader 0.1.5 后端 1. SpringBoot 1.5.3.RELEASE 2. MyBatis-Plus 2.0.8 3. MyBatis 3.4.4 4. Spring 4.3.8.RELEASE 5. Beetl 2.7.15 6. hibernate-validator 5.3.5.Final 7. Ehcache 3.3.1 8. Kaptcha 2.3.2 9. Fastjson 1.2.31 10. Shiro 1.4.0 11. Druid 1.0.31
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot,更简洁的后台管理系统 Guns (482个子文件)
page.js.btl 3KB
Controller.java.btl 3KB
page_info.js.btl 2KB
page_edit.html.btl 2KB
page.html.btl 2KB
page_add.html.btl 2KB
menu_sql.sql.btl 395B
style.css 133KB
bootstrap.min.css 118KB
font-awesome.css 32KB
bootstrap-rtl.css 31KB
font-awesome.min.css 26KB
layer.css 14KB
chosen.css 12KB
laydate.css 8KB
zTreeStyle.css 6KB
bootstrap-table.min.css 6KB
layer.css 5KB
demo.css 2KB
login.css 2KB
custom.css 1KB
_fstyle.css 975B
bootstrap-treetable.css 923B
bootstrapValidator.min.css 694B
webuploader.css 554B
webuploader.css 515B
fontawesome-webfont.eot 67KB
glyphicons-halflings-regular.eot 20KB
iconfont.eot 2KB
spring.factories 297B
boy.gif 13KB
girl.gif 9KB
loading-0.gif 6KB
zTreeStandard.gif 5KB
loading-2.gif 2KB
loading-upload.gif 2KB
loading-1.gif 701B
loading.gif 381B
line_conn.gif 45B
.gitattributes 115B
.gitignore 359B
code.html 6KB
dict_edit.html 4KB
user_view.html 4KB
_container.html 4KB
_tab.html 4KB
user.html 3KB
dict_add.html 3KB
login.html 3KB
_right.html 3KB
_theme.html 3KB
code.html 2KB
user_roleassign.html 2KB
role_assign.html 2KB
log.html 2KB
menu_edit.html 2KB
user_edit.html 2KB
role.html 2KB
user_add.html 2KB
role_edit.html 2KB
dept_edit.html 2KB
menu.html 2KB
role_add.html 2KB
notice.html 2KB
dept_add.html 2KB
dept.html 2KB
dict.html 2KB
index.html 2KB
notice_edit.html 2KB
login_log.html 2KB
user_chpwd.html 2KB
notice_add.html 2KB
menu_add.html 1KB
404.html 1KB
blackboard.html 389B
favicon.ico 1KB
StrKit.java 34KB
Convert.java 26KB
CollectionKit.java 19KB
BeanKit.java 18KB
DateTimeKit.java 17KB
ToolUtil.java 14KB
UserMgrController.java 13KB
ImgQrTool.java 13KB
ConstantFactory.java 9KB
Contrast.java 9KB
ShiroKit.java 8KB
DictSelectorTag.java 8KB
MenuController.java 8KB
ShiroConfig.java 8KB
RoleController.java 7KB
HexKit.java 7KB
HttpKit.java 7KB
DateUtil.java 7KB
WebConfig.java 6KB
DruidProperties.java 6KB
SqlConfig.java 6KB
ContextConfig.java 6KB
MenuNode.java 6KB
ShiroExt.java 5KB
共 482 条
- 1
- 2
- 3
- 4
- 5
资源评论
我爱上了你的身体
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功