深入理解热门开源项目Guns管理系统

价格:¥199.00
讲师:冯硕楠

本教程以开源中国热门项目Guns(项目地址:https://gitee.com/naan1993/guns)为核心,系统地讲解了如何构建一个日常生产环境实用的基于Spring Boot并且集成springmvc + shiro + mybatis-plus + beetl的后台管理系统。

教程从项目的搭建,如何进行日常开发讲起,利用通俗易懂的实际业务场景介绍开发中需要注意的事项,教程后半部分重点讲解组成框架的各个模块和功能是如何实现的,并一一介绍这些模块和功能的原理,其中包含Spring Boot,shiro,多数据源,异常拦截,代码生成,日志记录,map+warpper,数据范围,图片上传,缓存,devtools,事务等等!

教程的讲解注重方法论,例如教程讲解缓存、数据范围等内容,不单单是讲如何集成和使用,而是重在讲解他的原理和本质,在学生学会的基础上,引导学生去解决日常开发中遇到的同类问题。

教程所讲的代码均为实际生产可用的代码,您可以使用Guns进行您的日常开发,也可以把部分代码直接copy到您的项目中(遵守开源协议的前提下)。

教程适合入门java,了解一定java基础的同学,如果您想在工作中独自负责一个项目,那么这套教程是您独当一面的不二之选,当然,如果您想成为一个架构师,这套教程也可以是您踏上架构师之路的第一课!

开源项目Guns介绍:Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!

Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架.
Guns v3.0新增rest api服务,提供对接服务端接口的支持,并利用jwt token鉴权机制给予客户端的访问权限,传输数据进行md5签名保证传输过程数据的安全性!

Guns框架自带的功能:1.用户管理 2.角色管理 3.部门管理 4.菜单管理 5.字典管理 6.业务日志 7.登录日志 8.监控管理 9.通知管理 10.代码生成

Guns特点:

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和Roses的作者,精通java后台开发,拥有多年互联网系统开发经验,对软件系统的设计和架构有独到的见解,开源项目地址https://gitee.com/stylefeng