SaaS 微服務腳手架

zuihou-admin-boot 是基於`SpringBoot(2.2.5.RELEASE)` 的 SaaS型前後端分離腳手架,具備用戶管理、資源權限管理、Xss防跨站攻擊、代碼自動生成、多存儲系統、分佈式定時任務等多個模塊,可以作為後端服務的開發腳手架。代碼簡潔,架構清晰,非常適合學習和企業中使用。希望能努力打造一套從 SaaS基礎框架 - 單體架構 - 持續集成 - 自動化部署 - 系統監測 的解決方案。

核心技術採用SpringBoot、Mybatis、JWT Token、Redis、RibbitMQ、FastDFS、Vue等主要框架和中間件。

功能點介紹:

1. 服務鑑權:

通過JWT的方式來加強服務之間調度的權限驗證,保證內部服務的安全性。

2. 數據權限

利用基於Mybatis的DataScopeInterceptor攔截器實現了簡單的數據權限

3. SaaS(多租戶)的無感解決方案

使用Mybatis攔截器實現對所有SQL的攔截,修改默認的Schema,從而實現多租戶數據隔離的目的。 並且支持可插拔。

4. 二級緩存

採用J2Cache操作緩存,第一級緩存使用內存(Caffeine),第二級緩存使用 Redis。 由於大量的緩存讀取會導致 L2 的網絡成為整個系統的瓶頸,因此 L1 的目標是降低對 L2 的讀取次數。該緩存框架主要用於集群環境中。單機也可使用,用於避免應用重啟導致的緩存冷啟動後對後端業務的衝擊。

5. 優雅的Bean轉換

採用Dozer組件來對 DTO、DO、PO等對象的優化轉換

6. 前後端統一表單驗證

嚴謹的表單驗證通常需要 前端+後端同時驗證, 但傳統的項目,均只能前後端各做一次檢驗, 後期規則變更,又得前後端同時修改。故在`hibernate-validator`的基礎上封裝了`zuihou-validator-starter`起步依賴,提供一個通用接口,可以獲取需要校驗表單的規則,然後前端使用後端返回的規則,以後若規則改變,只需要後端修改即可。

7. 防跨站腳本攻擊(XSS) - 通過過濾器對所有請求中的 表單參數 進行過濾 - 通過Json反序列化器實現對所有 application/json 類型的參數 進行過濾 8. 當前登錄用戶信息注入器 - 通過註解實現用戶身份注入 9. 在線API

由於原生swagger-ui某些功能支持不夠友好,故採用了國內開源的`swagger-bootstrap-ui`,並製作了stater,方便springboot用戶使用。

10. 代碼生成器

基於Mybatis-plus-generator自定義了一套代碼生成器, 通過配置數據庫字段的註釋,自動生成枚舉類、數據字典註解、SaveDTO、UpdateDTO、表單驗證規則註解、Swagger註解等。

11. 定時任務調度器:

基於xxl-jobs進行了功能增強。(如:指定時間發送任務、執行器和調度器合併項目、多數據源)

12. 大文件/斷點/分片續傳

前端採用webupload.js、後端採用NIO實現了大文件斷點分片續傳,啟動Eureka、Zuul、File服務後,直接打開docs/chunkUploadDemo/demo.html即可進行測試。經測試,本地限制堆棧最大內存128M啟動File服務,5分鐘內能成功上傳4.6G+的大文件,正式服耗時則會受到用戶帶寬和服務器帶寬的影響,時間比較長。

13. 跨表、跨庫、跨服務的關聯數據自動注入器

用於解決跨表、跨庫、跨服務分頁數據的屬性或單個對象的屬性 回顯關聯數據之痛, 支持對靜態數據屬性(數據字典)、動態主鍵數據進行自動注入。

頁面預覽:

SaaS 微服務腳手架

SaaS 微服務腳手架

SaaS 微服務腳手架

git:https://gitee.com/zuihou111/zuihou-admin-boot


分享到:


相關文章: