# Guns V2.5
新版Guns基于SpringBoot全面升级,完美整合springmvc + shiro + **MyBatis 通用 Mapper** + **分页插件 PageHelper** + beetl!
# 说明
本项目 fork 自 [stylefeng](http://git.oschina.net/naan1993) 的 [Guns](http://git.oschina.net/naan1993/guns)!
经过对 Guns 项目的修改,使得该项目成为一个通用 Mapper 和 分页插件使用的示例。
项目引入了下面两个依赖:
```xml
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>${mapper-starter.version}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper-starter.version}</version>
</dependency>
```
完全使用 MyBatis 官方的 Starter.
一个最简单的 Spring Boot 集成项目:
https://github.com/abel533/MyBatis-Spring-Boot
# 修改说明
本项目对 Guns 的改动为:
1. 将 mybatis-plus 改成了通用 Mapper.
2. 增加分页插件 PageHelper.
3. 去掉`com.stylefeng.guns.modular.system.dao`包中的所有DAO,将方法放到对应的Mapper接口中.
4. 将 Mapper.xml 移动到 resources 中
关于两者的对比,可以通过 commit 信息查看。
更多 MyBatis 相关工具可以访问: http://mybatis.tk
## V2.5更新日志
1. 新增数据范围功能(例如两个角色都有用户管理权限,但是下级部门不能看到上级部门的数据)
2. 代码生成的bug修复,现在兼容windows和linux
3. shiro的过滤器链改为LinkedHashMap
4. 修复添加顶级部门添加不了的bug
5. 解决日期格式化工具类线程安全的问题
6. 修复日志记录会出现多个重复文件的bug
## 功能简介
1. 用户管理
2. 角色管理
3. 部门管理
4. 菜单管理
5. 字典管理
6. 业务日志
7. 登录日志
8. 监控管理
9. 通知管理
10. 代码生成
## 使用说明
1. 导入sql/guns.sql文件到mysql数据库
2. 修改application.yml中的数据库用户名和密码
3. 以maven方式导入项目到ide
4. 修改application.yml中的数据库相关的配置,改为您本机的数据库配置
5. 启动项目,管理员***账号admin/密码111111***
### 如何启动项目
Guns目前支持三种启动方式:
1. 在IDE里运行GunsApplication类中的main方法启动
2. 执行如下maven命令
```
clean package -Dmaven.test.skip=true
```
并从target目录中找到guns-1.0.0-SNAPSHOT.jar,并在jar包的目录下执行如下java命令
```
java -jar guns-1.0.0-SNAPSHOT.jar
```
3. 修改pom.xml中如下片段
```
<packaging>jar</packaging>
```
改为
```
<packaging>war</packaging>
```
并打包放入到tomcat中执行
### 注意
最新版项目最低支持jdk1.7
## 所用框架
### 前端
1. Bootstrap v3.3.6
2. jQuery v2.1.4
3. bootstrap-table v1.11.1
4. layer v2.1
5. zTree core v3.5.28
6. WebUploader 0.1.5
### 后端
1. SpringBoot 1.5.3.RELEASE
2. MyBatis-通用Mapper-starter 1.1.3
2. MyBats-PageHelper-starter 1.1.2
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
## 项目包结构说明
```
├─main
│ │
│ ├─java
│ │ │
│ │ ├─com.stylefeng.guns----------------项目主代码
│ │ │ │
│ │ │ ├─common----------------项目公用的部分(业务中经常调用的类,例如常量,异常,实体,注解,分页类,节点类)
│ │ │ │
│ │ │ ├─config----------------项目配置代码(例如mybtais-plus配置,ehcache配置等)
│ │ │ │
│ │ │ ├─core----------------项目运行的核心依靠(例如aop日志记录,拦截器,监听器,guns模板引擎,shiro权限检查等)
│ │ │ │
│ │ │ ├─modular----------------项目业务代码
│ │ │ │
│ │ │ ├─GunsApplication类----------------以main方法启动springboot的类
│ │ │ │
│ │ │ └─GunsServletInitializer类----------------用servlet容器启动springboot的核心类
│ │ │
│ │ └─generator----------------mybatis-plus Entity生成器
│ │
│ ├─resources----------------项目资源文件
│ │ │
│ │ ├─gunsTemplate----------------guns代码生成模板
│ │ │
│ │ ├─application.yml----------------springboot项目配置
│ │ │
│ │ └─ehcache.xml----------------ehcache缓存配置
│ │
│ └─webapp----------------web页面和静态资源存放的目录
│
```
注:SpringBoot项目默认不支持将静态资源和模板(web页面)放到webapp目录,但是个人感觉resources目录只放项目的配置更加简洁,所以就将web页面继续放到webapp目录了.
## 项目特点
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;
}
/**
* druid数据库连接池
*/
@Bean(initMethod = "init")
public DruidDataSource dataSource() {
DruidDataSource dataSource = new Dr
没有合适的资源?快使用搜索试试~ 我知道了~
Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + 分页.zip
共812个文件
js:244个
java:193个
html:130个
需积分: 5 0 下载量 79 浏览量
2024-02-22
23:44:53
上传
评论
收藏 6.97MB ZIP 举报
温馨提示
Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + 分页
资源推荐
资源详情
资源评论
收起资源包目录
Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + 分页.zip (812个子文件)
page.js.btl 3KB
page_info.js.btl 2KB
page.html.btl 2KB
Controller.java.btl 2KB
page_edit.html.btl 969B
page_add.html.btl 941B
ServiceImpl.java.btl 313B
Mapping.xml.btl 224B
Service.java.btl 183B
Dao.java.btl 171B
summernote-bs3.css 143KB
style.css 133KB
bootstrap.min.css 118KB
animate.css 64KB
datepicker3.css 33KB
font-awesome.css 32KB
bootstrap-rtl.css 31KB
font-awesome.min.css 26KB
ambiance.css 25KB
style.min.css 25KB
sweetalert.css 18KB
simditor.css 17KB
ui.jqgrid.css 16KB
jasny-bootstrap.min.css 14KB
jquery-ui-1.10.4.custom.min.css 14KB
chosen.css 12KB
dropzone.css 11KB
layer.css 11KB
layim.css 11KB
fullcalendar.css 11KB
summernote.css 10KB
plyr.css 10KB
codemirror.css 7KB
blueimp-gallery.min.css 7KB
awesome-bootstrap-checkbox.css 7KB
toastr.min.css 7KB
zTreeStyle.css 6KB
laydate.css 6KB
blueimp-gallery.css 6KB
bootstrap-table.min.css 6KB
jquery.steps.css 6KB
footable.core.css 5KB
jquery.fancybox.css 5KB
dataTables.bootstrap.css 5KB
clockpicker.css 4KB
basic.css 4KB
style.css 4KB
bootstrap-colorpicker.min.css 3KB
laydate.css 3KB
cropper.min.css 3KB
ion.rangeSlider.css 3KB
jquery.nouislider.css 3KB
layer.ext.css 3KB
bootstrap-markdown.min.css 3KB
jquery.gritter.css 3KB
demo.css 2KB
blueimp-gallery-video.css 2KB
login.css 2KB
ion.rangeSlider.skinFlat.css 2KB
bootstrap-duallistbox.css 2KB
blueimp-gallery-indicator.css 2KB
custom.css 1KB
bootstrap-multiselect.css 1KB
bootstrap-treeview.css 1KB
jquery.treegrid.css 1KB
_fstyle.css 924B
demo.css 867B
bootstrapValidator.min.css 694B
fullcalendar.print.css 660B
switchery.css 611B
webuploader.css 554B
webuploader.css 515B
morris-0.4.3.min.css 443B
tiki.css 441B
tiddlywiki.css 220B
fontawesome-webfont.eot 67KB
glyphicons-halflings-regular.eot 20KB
footable.eot 5KB
fancybox_loading@2x.gif 14KB
boy.gif 13KB
girl.gif 9KB
fancybox_loading.gif 6KB
xubox_loading0.gif 6KB
loading-0.gif 6KB
zTreeStandard.gif 5KB
loading.gif 4KB
xubox_loading3.gif 2KB
xubox_loading2.gif 2KB
loading-2.gif 2KB
throbber.gif 2KB
loading-upload.gif 2KB
xubox_loading1.gif 701B
loading-1.gif 701B
loading.gif 381B
loading.gif 166B
line_conn.gif 45B
blank.gif 43B
ie-spacer.gif 43B
.gitattributes 86B
.gitignore 140B
共 812 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
季风泯灭的季节
- 粉丝: 600
- 资源: 2920
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功