中小型企业的福音--Guns框架介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/coder_zyz/article/details/84763550

目录

背景

使用技术

项目特点

使用感受

框架效果

框架下载地址

结束语


背景

      新公司,新迹象,新框架。Guns框架,相比以往的springMVC框架需要个人集成shiro和Druid等东西,Guns给封装好了一系列的插件,堪称后台管理系统的脚手架,Guns框架包含许多基础模块,例如用户管理,角色管理,部门管理,字典管理等10个模块,完美整合springmvc + shiro + mybatis-plus + beetl。

使用技术

###前端
Bootstrap v3.3.6
jQuery v2.1.4
bootstrap-table v1.11.1
layer v2.1
zTree core v3.5.28
WebUploader 0.1.5
###后端
SpringBoot 1.5.3.RELEASE
MyBatis-Plus 2.0.8
MyBatis 3.4.4
Spring 4.3.8.RELEASE
Beetl 2.7.15
hibernate-validator 5.3.5.Final
Ehcache 3.3.1
Kaptcha 2.3.2
Fastjson 1.2.31
Shiro 1.4.0
Druid 1.0.31

项目特点

  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的利用效率,并且有效防止多个人员开发引起的函数名/类名冲突,并且可以更好地去维护代码。

 

使用感受

      官方定位是后台管理系统的脚手架,脚手架确实是为了辅助我们进行开发,对于大多数中小型企业来说,可能无法安排单独的架构师对项目的架构,Guns框架作为脚手架,集成了我们当前主流的组件,像shiro的权限控制和Durid的数据连接,此外对于简单的增删改查来说,guns提供了代码的自动生成,这是对我来说感觉很有用的,功能如下图:

选择数据库的一张表,他能根据这张表自动生成对象,并提供展示的Grid和新增修改的功能页面,对于我大多数主做增删改查的公司来说,这个真是比较完美的,例如根据一张表生成的功能效果图:

自动生成的不只是controller、service、dao的代码,还有新增修改的html代码等。总之,对于大多数java研发人员来说,这个框架是值得一瞧得。

框架效果

最后上两张框架自动生成的效果图

 

框架下载地址

https://gitee.com/270029666/guns/

结束语

开发人员可以关注以下公众号,我会定期分享javaweb和数据分析的相关知识,谢谢:

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页