# Guns V5.1
## 介绍
Guns基于SpringBoot 2,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架! 2018目标 `更简洁`,`更规范`!
### Guns v5.1更新内容
> * 框架整体的包名变为cn开头,和域名stylefeng.cn保持一致!
> * 优化了shiro相关的几个服务类的结构,整体业务逻辑不变,优化了部分包结构和类之间的关系,项目整体更加简洁和易维护!
> * 整合了guns-core,和roses项目的kernel-core,并把kernel-core上传到了maven的中央仓库!
> * 剔除了guns-generator模块,抽出单独的项目https://gitee.com/stylefeng/guns-generator来维护,并且guns-generator也上传到了maven中央仓库!
> * 框架整体回归了单模块应用,返璞归真,开箱即用,快速开发新项目,新业务!
**另外更新了Guns技术文档的版本到5.1,与项目版本保持一致,详情见文档详情!**
## 最新Guns技术文档
Guns框架有作者在业余时间整理的技术文档,详情点击[查看详情](https://gitee.com/stylefeng/guns/wikis/pages?title=Guns%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3&parent=)
## 最新Guns视频教程
Guns框架有作者在业余时间录制的视频教程,详情点击[教程介绍](https://gitee.com/stylefeng/guns/wikis/pages?title=Guns%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B&parent=)
## 技术讨论 & [wiki地址](https://gitee.com/stylefeng/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/system/dept/dept.js"></script>
@}
```
以上beetl的用法请参考beetl说明文档。
## 对js常用代码的封装
在webapp/static/js/common目录中,有对常用js代码的封装,例如Feng.js,其中Feng.info(),Feng.success(),Feng.error()三个方法,分别封装了普通提示,成功提示,错误提示的代码,简化了layer提示层插件的使用。
## 极简的图片上传方法
guns对web-upload进行二次封装,让图片的上传功能呢只用2行代码即可实现,如下
```
var avatarUp = new $WebUpload("avatar");
avatarUp.init();
```
具体实现请参考static/js/common/web-upload-object.js
## 独创controller层,map+warpper返回方式
map+warpper方式即为把controller层的返回结果使用BeanKit工具类把原有bean转化为Map的的形式(或者原有bean直接是map的形式),再用单独写的一个包装类再包装一次这个map,使里面的参数更加具体�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
吉利红包完整原封不动纯源码下载java (2000个子文件)
libOpenInstallSDK.a 3.85MB
DOTweenTextMeshPro.cs.addon 15KB
DOTweenTk2d.cs.addon 13KB
sound.anim 10KB
hand.anim 10KB
ProjectSettings.asset 38KB
InputManager.asset 5KB
QualitySettings.asset 5KB
NavMeshAreas.asset 4KB
EditorBuildSettings.asset 4KB
TagManager.asset 4KB
Physics2DSettings.asset 4KB
DynamicsManager.asset 4KB
GraphicsSettings.asset 4KB
DOTweenSettings.asset 4KB
EditorSettings.asset 4KB
AudioManager.asset 4KB
UnityConnectSettings.asset 4KB
UnityAdsSettings.asset 4KB
NetworkManager.asset 4KB
TimeManager.asset 4KB
ClusterInputManager.asset 4KB
ShareSDKConfig.bin 173B
soundPopup.controller 7KB
hand.controller 7KB
iTween.cs 267KB
Reporter.cs 63KB
DataEncrypt.cs 45KB
JsonReader.cs 37KB
JsonWriter.cs 33KB
ShareSDKDevInfo.cs 30KB
HMPanelMainNiuniu.cs 28KB
LHPanelMain.cs 28KB
DOTweenAnimationInspector.cs 28KB
MessageManagerRedPackage.cs 27KB
XCProject.cs 25KB
DOTweenAnimation.cs 23KB
Socket.cs 22KB
MessageManagerHall.cs 22KB
LHPanelBetOld.cs 22KB
LHPanelBet.cs 21KB
HMPanelMainRedPacket.cs 21KB
PopupRoomSetting.cs 20KB
TinyJson.cs 20KB
PanelHallLoginRegister.cs 19KB
TypeCoercionUtility.cs 17KB
Calendar.cs 16KB
PanelHallHome.cs 16KB
MiniJSON.cs 15KB
ItemChatScroller.cs 14KB
PanelPersonalCenter.cs 14KB
ShareSDK.cs 14KB
MessageManagerNiuNiu.cs 13KB
HMItemPlayNiuNiu.cs 13KB
PopupRedClearance.cs 12KB
ChosenPlatforms.cs 11KB
HMPanelShowAllInfoRedPacket.cs 11KB
EcmaScriptWriter.cs 10KB
MessageManagerLongHU.cs 10KB
BasePopup.cs 10KB
ShareContent.cs 10KB
PBXParser.cs 10KB
ChatScroller.cs 10KB
HMControlNiuniu.cs 9KB
ClearanceRoomItem.cs 9KB
EditorUI.cs 9KB
ThirdPartyLogin.cs 9KB
PanelRecord.cs 9KB
GameTools.cs 9KB
EcmaScriptIdentifier.cs 9KB
UIManagerHall.cs 8KB
MyRoomItem.cs 8KB
JsonWriterSettings.cs 8KB
PopupMyEarnings.cs 8KB
PopupMyRoom.cs 8KB
XCBuildConfiguration.cs 8KB
iOSImpl.cs 7KB
OpenPhoto.cs 7KB
SoundManager.cs 7KB
PopupMyReferrals.cs 7KB
MicroPhoneInput.cs 7KB
HMPopopOpenRedPacket.cs 7KB
CircleImage.cs 6KB
PopupWithDrawSetting.cs 6KB
ReporterEditor.cs 6KB
PopupStoreRecord.cs 6KB
PopupOpenRoomEarnings.cs 6KB
NetMngr.cs 6KB
PopupWithDrawRecord.cs 6KB
LHPopupShowResult.cs 6KB
DataWriterProvider.cs 6KB
PopupMyOrder.cs 6KB
HMPanelSendRedPacket.cs 6KB
PopupRecordDetail.cs 5KB
LHPopupBetDetail.cs 5KB
LogWriter.cs 5KB
ExRedPacketSendMessage.cs 5KB
AndroidImpl.cs 5KB
HMPopupSendDuanyuBiaoQing.cs 5KB
PopupBlendPhone.cs 5KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
智慧浩海
- 粉丝: 1w+
- 资源: 5197
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功