有人曾說:人的差距都在業余時間拉開的……嗯,我現在深刻理解着這句話,作為一個程序員,技術男,就得不斷學習新的技術,跟上時代步伐,才會讓自己更有價值~~~~以下這個項目是個人利用業余時間學習並實踐的~如有不正確的地方,歡迎大家指正。今天總算把這些功能都搞得差不多了,做一下記錄,結一下尾。
一、概述
本系統主要是一個后台管理系統,Shiro實現用戶的角色、權限分配;layui+thymeleaf實現頁面的渲染;在線設計流程圖(非插件);通過請假模擬工作流;layui實現頁面菜單樹等等,一一道來。
1、技術點
SpringBoot(2.1.8.RELEASE)-官網地址:https://spring.io/projects/spring-boot/
Mabtis-Plus(3.2.0):國人開發的增強版mybatis,極好用(不僅可以生成mapper,連controller、service都可以逆向生成……等等)--官網地址:https://mp.baomidou.com/
Activiti(5.22.0):實現工作流(類比日常OA系統):https://www.activiti.org/get-started
Shiro(1.4.1):實現權限管理:http://shiro.apache.org/
layui(2.5.5):前端框架(極容易上手):https://www.layui.com/
Thymeleaf:模板引擎:https://www.thymeleaf.org/
2、實現功能
權限分配:基於“RBAC”實現的“用戶”、“角色”、“權限”對應;根據不同用戶分配不同的角色、根據不同的角色分配不同的權限
bpmn(流程圖):本系統集成Activiti在線設計器,即通過本系統可以實現在線畫流程圖(避免給eclipse及idea裝插件)
菜單樹:layui組件生成
thymeleaf+layui:渲染前端頁面、查詢條件等
二、系統演示
1、layui加載菜單樹、Shiro實現授權
2、Activiti在線設計請假單的流程圖
這里唯一需要注意的就是任務監聽器的配置:(需要配置該類的全路徑名,上述gif動圖中有該配置,並實現TaskListener、不要配置成執行監聽器-------鄙人走過的坑!!! )
4、請假整體流程業務測試
根據上一步在線設計好的流程圖,啟動該流程(注:領導關系:孫七-->趙六-->王五)
5、首頁模塊
我的申請任務、待辦任務、經辦任務(拿出了我吃奶的勁去修飾頁面:div+css--------真讓人頭疼--------------自學vue中……)
三、分析
1、菜單樹的加載(layui組件實現)
根據官網案例,菜單樹的數據就是json串,所以我們后台構造出對應的json即可---即TreeNodeBuilder構造出有層次的json串
2、Mabits-plus逆向生成代碼的測試類
這里包括生成:controller、Service、ServiceImpl、Mapper、Mapper.xml
本項目地址:https://github.com/Simple-Coder/manage-system(其中也有很多不足)