項目下載地址:
https://gitee.com/smallGourd/gourd-hu
項目結構截圖:
#### 項目介紹
本項目主要以spring cloud alibaba組件整合一些常用框架來搭建一個簡單易用的項目。
組件模塊:
---------------------------------------
需要哪個組件功能,只需要增加配置和依賴jar包即可;gourd-base:基礎模塊,項目所需的基礎依賴、公共配置、及工具類等。
新建一個項目,只需要maven依賴此jar包,就可以啓動一個完整項目。
gourd-rbac:權限用戶模塊,用戶管理,權限分配等;
gourd-file: 文件基礎模塊,包括文件上傳、下載、預覽,Excel導入導出等。
gourd-notice:通訊模塊,包括郵件、短信、websocket等。
gourd-quartz:quartz動態定時任務,並持久化到數據庫。
gourd-activiti:工作流及請假demo。
gourd-boot-admin: springboot admin監控臺,並增加郵件通知功能;
gourd-generator: mybatisPlus的代碼生成工具;
gourd-rocketMq: 消息的發送和消費;
gourd-es: elasticSearch搜索引擎;
gourd-cache:緩存模塊,redis、redisson分佈式鎖、springcache註解式緩存;項目模塊:
----------------------------------------
gourd-service-hu:主項目,一個完整的springboot項目。
架構:springboot + springCloud + mybatisPlus(持久層) + mysql(數據庫) +
nacos(註冊中心、配置中心) + feign(遠程調用)+ ribbon(負載) +sentinel(流控、熔斷)
+ redis(緩存) + redisson(分佈式鎖) + seata(分佈式事務)
gourd-service-sub: 輔助項目,簡單的springboot項目,用於測試分佈式服務調用和分佈式事務等。#### 集成功能:
**核心功能:**
1.springSecurity+jwt-token:
用戶管理、權限驗證、使用jwt-token作爲用戶身份Id。
支持承租人模式。 登錄賬號密碼: admin@gourd 123456
2.mysql數據庫:
動態多數據源( 如果只有一個數據庫,master和slave配置成一樣即可);
數據庫連接密碼加密;
3.Cache:
redis工具類;
spring Cache; 功能測試:CloudTestController-> /test/cache
redisson分佈式鎖; 測試接口:CloudTestController -> /test/lock
4.seata:
分佈式事務,功能測試:CloudTestController -> /test/seata-tx
5.quartz定時任務:
業務代碼動態增加定時任務; 功能測試:QuartzController
持久化到數據庫;
6.springCloud分佈式:
註冊發現中心:Nacos;
feignClient遠程調用; 功能測試:CloudTestController
ribbon:負載均衡
7.Nacos:
配置中心,日誌等級熱更新;
功能測試:CloudTestController -> /test/nacos
8.sentinel:
接口限流、降級、系統保護、熱點數據限流、權限設置等;
規則持久化到Nacos;
9.通訊:
aliyun短信通知; 功能測試:NoticeTestController-> /notice/msg
文本、附件、模板郵件通知; 功能測試:NoticeTestController
netty-websocket實時消息; 功能測試:http://localhost:8088/hu/websocket.html
10.文件:
openoffice在線預覽文件;功能測試:FileConvertController
easyexcel實現Excel文件導入導出; 功能測試:EasyExcelController
fastDfs文件上傳、下載; 功能測試:FileController
11.activiti:工作流,及請假流程demo
功能測試: ActivitiController
12.p6spy sql日誌打印,打印sql耗時、替換參數後的sql。
13.jasypt文本加解密,可用於數據庫密碼、redis密碼、郵箱密碼等加密;
密文生成:https://blog.csdn.net/HXNLYW/article/details/98635913
14.圖形驗證碼生成校驗
功能測試地址:http://localhost:8088/hu/kaptcha.html
15.rocketMq:
消息發送和消費
16.async:
支持@Async註解異步方法;
異步線程池直接使用。
功能測試:CloudTestController->/test/async-task
17. elasticSearch:
分佈式、RESTful 風格的搜索和數據分析引擎;
功能測試:UserEsController;
18. FlyingSaucer+thymeleaf實現動態模板文件轉pdf打印;
功能測試:PdfController;
19.工具類:
1)地址ip獲取工具(AddressUtil);
2)日期處理工具(DateUtil);
3)分佈式全局唯一訂單號生成、分佈式全局唯一主鍵id生成工具(OrderNumberUtil、IdGeneratorUtil);
4)md5加密工具、AES加解密工具(Md5Util、AesHopeUtil);
5)漢字拼音生成工具(Pinyin4jUtil);
6)銘感詞脫敏工具(SensitiveInfoUtil);
7)集合轉換複製工具(CollectionUtil);
8)redis操作工具類、redisson鎖工具類(RedisUtil、RedisLockUtil);
9)RestTemplate遠程調用工具了(RestTemplateUtil);
20.其他功能:
1)統一異常處理,自定義業務異常;
2)spring-retry接口重試,自定義接口重試次數、間隔、和重試的異常;
3)AOP接口防重複提交,唯一條件:指定時間內,用戶id+請求url+參數 控制唯一性;
4)接口訪問日誌記錄,記錄請求地址、參數、返回、異常及接口耗時等並持久化到數據庫;默認30天過期刪除 ;
5)實體類公共字段填充:is_deleted,version,created_by,created_time,updated_by,updated_time ;
6)實體類Id自動填充;
**輔助功能:**
1.swagger:
接口文檔、接口調試;
本地地址:http://localhost:8088/hu/swagger-ui.html#
線上地址:http://47.103.5.190:8088/hu/swagger-ui.html#/
2.flyway:
數據庫腳本自動執行,只需要將sql腳本放在 /db目錄下,項目啓動就會自動執行腳本。
3.generator:
mybatisPlus自動生成基礎代碼
4.druid監控:
本地地址:http://localhost:8088/hu/druid/login.html 賬號密碼:admin
線上地址:http://47.103.5.190:8088/hu/druid/login.html 賬號密碼:admin
5. springboot admin監控:
springboot應用監控,線程、內存、垃圾回收、配置等監控;
訪問地址:http://localhost:8769
#### 作者
名字:gourd.hu
博客:https://blog.csdn.net/HXNLYW
微信號:13584278267 (歡迎諮詢)