目錄
背景
新公司,新跡象,新框架。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
項目特點
- 基於SpringBoot,簡化了大量項目配置和maven依賴,讓您更專注於業務開發,獨特的分包方式,代碼多而不亂。
- 完善的日誌記錄體系,可記錄登錄日誌,業務操作日誌(可記錄操作前和操作後的數據),異常日誌到數據庫,通過@BussinessLog註解和LogObjectHolder.me().set()方法,業務操作日誌可具體記錄哪個用戶,執行了哪些業務,修改了哪些數據,並且日誌記錄爲異步執行,詳情請見@BussinessLog註解和LogObjectHolder,LogManager,LogAop類。
- 利用beetl模板引擎對前臺頁面進行封裝和拆分,使臃腫的html代碼變得簡潔,更加易維護。
- 對常用js插件進行二次封裝,使js代碼變得簡潔,更加易維護,具體請見webapp/static/js/common文件夾內js代碼。
- 利用ehcache框架對經常調用的查詢進行緩存,提升運行速度,具體請見ConstantFactory類中@Cacheable標記的方法。
- controller層採用map + warpper方式的返回結果,返回給前端更爲靈活的數據,具體參見com.stylefeng.guns.modular.system.warpper包中具體類。
- 防止XSS攻擊,通過XssFilter類對所有的輸入的非法字符串進行過濾以及替換。
- 簡單可用的代碼生成體系,通過SimpleTemplateEngine可生成帶有主頁跳轉和增刪改查的通用控制器、html頁面以及相關的js,還可以生成Service和Dao,並且這些生成項都爲可選的,通過ContextConfig下的一些列xxxSwitch開關,可靈活控制生成模板代碼,讓您把時間放在真正的業務上。
- 控制器層統一的異常攔截機制,利用@ControllerAdvice統一對異常攔截,具體見com.stylefeng.guns.core.aop.GlobalExceptionHandler類。
- 頁面統一的js key-value單例模式寫法,每個頁面生成一個唯一的全局變量,提高js的利用效率,並且有效防止多個人員開發引起的函數名/類名衝突,並且可以更好地去維護代碼。
使用感受
官方定位是後臺管理系統的腳手架,腳手架確實是爲了輔助我們進行開發,對於大多數中小型企業來說,可能無法安排單獨的架構師對項目的架構,Guns框架作爲腳手架,集成了我們當前主流的組件,像shiro的權限控制和Durid的數據連接,此外對於簡單的增刪改查來說,guns提供了代碼的自動生成,這是對我來說感覺很有用的,功能如下圖:
選擇數據庫的一張表,他能根據這張表自動生成對象,並提供展示的Grid和新增修改的功能頁面,對於我大多數主做增刪改查的公司來說,這個真是比較完美的,例如根據一張表生成的功能效果圖:
自動生成的不只是controller、service、dao的代碼,還有新增修改的html代碼等。總之,對於大多數java研發人員來說,這個框架是值得一瞧得。
框架效果
最後上兩張框架自動生成的效果圖
框架下載地址
https://gitee.com/270029666/guns/
結束語
開發人員可以關注以下公衆號,我會定期分享javaweb和數據分析的相關知識,謝謝: