jeecg-boot學習總結及使用心得
1.jeecg-boot是一個真正前後端分離的模版項目,便於二次開發,使用的都是較流行的新技術,
後端技術主要有spring-boot2.x、shiro、Mybatis-plus、redis等;
前端項目基於node.js、webpack構建,主要技術使用Vue、vuex、axios等
2.作爲模版項目,便於快速二次開發。
現成基本功能包括用戶管理、角色管理、菜單管理(前端根據角色動態路由)、部門管理、
數據字典、消息中心、定時任務、及各種豐富的各種前端效果示例及最重要的**代碼生成功能**。
3.全棧開發。以本項目爲基礎開啓全棧開發,對一個想做全棧開發的程序員來說,是個學習基礎。
但是真正做到全棧,還是有很大的學習成本的。就本人來說,做Java程序開發工作近6年,最主要是做後端開發,
後端的技術棧涉獵很廣,但是前端僅限於偶爾寫頁面也是用jsp、jquery等。
新流行的node.js、vue.js沒怎麼用過。所以學習成本較大,最近惡補了vue.js相關基礎知識。
實話說,vue的組件、路由、數據雙向綁定用起來簡直不要太爽。後端開發人員有精力可以學學。
4.jeecg-boot爲二次開發基礎,適合用戶。
a.全棧開發人員(適合Java程序員轉全棧);
b.團隊有前後端開發人員,但是缺少架構能力;
c.前端程序員有node、vue基礎轉全棧(*太難了*)
jeecg-boot 項目中的部分實現細節 (自己記錄,待後續用)
1. 引入了swagger,另外用了增強UI的組件swagger-bootstrap-ui,使文檔更友好一點兒。另外api接口統一使用token 安全認證,swagger支持在header中設置token。
2.統一的重複記錄校驗接口 , 傳入表名 , 字段值,字段名 ,ID。org.jeecg.modules.system.controller.DuplicateCheckController#doDuplicateCheck
3.登錄,shiro認證初始化,後端生成token算法(java-jwt) , 前端token存儲 (local-storage),
4.主鍵id 規則 @TableId(type = IdType.ID_WORKER_STR) private String id;
/**
* 數據庫ID自增
*/
AUTO(0),
/**
* 該類型爲未設置主鍵類型(將跟隨全局)
*/
NONE(1),
/**
* 用戶輸入ID
* <p>該類型可以通過自己註冊自動填充插件進行填充</p>
*/
INPUT(2),
/* 以下3種類型、只有當插入對象ID 爲空,才自動填充。 */
/**
* 全局唯一ID (idWorker)
*/
ID_WORKER(3),
/**
* 全局唯一ID (UUID)
*/
UUID(4),
/**
* 字符串全局唯一ID (idWorker 的字符串表示)
*/
ID_WORKER_STR(5);
5.mybaits plus 簡化sql編寫, (動態sql生成com.baomidou.mybatisplus.core.mapper.BaseMapper,基類service com.baomidou.mybatisplus.extension.service.impl.ServiceImpl)
6.Spring緩存Cacheable使用
@Cacheable(value = CacheConstant.SYS_DICT_CACHE,key = "#code+':'+#key") 放入緩存
@Cacheable(cacheNames=CacheConstant.SYS_USERS_CACHE, key="#username")
@CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true) 清除緩存
7.通過後端反饋不同狀態碼,ant-design-vue-jeecg/src/utils/request.js前端以攔截器(service.interceptors.request.use)爲所有請求作出統一的異常響應,500登錄過期,重新跳到登錄;403拒絕訪問
8.ant-design-vue-jeecg/src/permission.js 根據是否存在Vue.ls.get(ACCESS_TOKEN),判斷是否登錄,未登錄跳轉到登錄;未登錄時,允許進入登錄等白名單路由;動態生成路由表
9.前端保存ACCESS_TOKEN到local-storage,store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
10.ant-design-vue 常用標籤。<a-table> <a-form> <a-card>
改進建議
1.啓動腳本區分環境
前端項目運行,在啓動腳本指定環境,可以一次編譯,在不同環境中(dev、sit 、prod)運行,便於環境切換。