分享一個Spring Cloud商業(yè)級前后端SaaS微服務(wù)項目!附源碼!
簡介
SpringBlade 是一個由商業(yè)級項目升級優(yōu)化而來的微服務(wù)架構(gòu),采用Spring Boot 2.5 、Spring Cloud 2020 等核心技術(shù)構(gòu)建,完全遵循阿里巴巴編碼規(guī)范。提供基于React和Vue的兩個前端框架用于快速搭建企業(yè)級的SaaS多租戶微服務(wù)平臺。
采用前后端分離的模式,前端開源兩個框架:Sword (基于 React、Ant Design)、Saber (基于 Vue、Element-UI) Java項目分享
后端采用SpringCloud全家桶,并同時對其基礎(chǔ)組件做了高度的封裝,單獨開源出一個框架:BladeTool
BladeTool已推送至Maven中央庫,直接引入即可,減少了工程的臃腫,也可更注重于業(yè)務(wù)開發(fā)
集成Sentinel從流量控制、熔斷降級、系統(tǒng)負(fù)載等多個維度保護(hù)服務(wù)的穩(wěn)定性。Java項目分享
注冊中心、配置中心選型Nacos,為工程瘦身的同時加強(qiáng)各模塊之間的聯(lián)動。
使用Traefik進(jìn)行反向代理,監(jiān)聽后臺變化自動化應(yīng)用新的配置文件。
極簡封裝了多租戶底層,用更少的代碼換來拓展性更強(qiáng)的SaaS多租戶系統(tǒng)。
借鑒OAuth2,實現(xiàn)了多終端認(rèn)證系統(tǒng),可控制子系統(tǒng)的token權(quán)限互相隔離。
借鑒Security,封裝了Secure模塊,采用JWT做Token認(rèn)證,可拓展集成Redis等細(xì)顆粒度控制方案。 Java項目分享
穩(wěn)定生產(chǎn)了三年,經(jīng)歷了從 Camden -> Hoxton -> 2020 的技術(shù)架構(gòu),也經(jīng)歷了從fat jar -> docker -> k8s + jenkins的部署架構(gòu)。
項目分包明確,規(guī)范微服務(wù)的開發(fā)模式,使包與包之間的分工清晰。
架構(gòu)圖

趨勢圖

工程結(jié)構(gòu)
SpringBlade
├── blade-auth -- 授權(quán)服務(wù)提供
├── blade-common -- 常用工具封裝包
├── blade-gateway -- Spring Cloud 網(wǎng)關(guān)
├── blade-ops -- 運維中心
├ ├── blade-admin -- spring-cloud后臺管理
├ ├── blade-develop -- 代碼生成
├ ├── blade-resource -- 資源管理
├ ├── blade-seata-order -- seata分布式事務(wù)demo
├ ├── blade-seata-storage -- seata分布式事務(wù)demo
├── blade-service -- 業(yè)務(wù)模塊
├ ├── blade-desk -- 工作臺模塊
├ ├── blade-log -- 日志模塊
├ ├── blade-system -- 系統(tǒng)模塊
├ └── blade-user -- 用戶模塊
├── blade-service-api -- 業(yè)務(wù)模塊api封裝
├ ├── blade-desk-api -- 工作臺api
├ ├── blade-dict-api -- 字典api
├ ├── blade-system-api -- 系統(tǒng)api
└── └── blade-user-api -- 用戶api
開源協(xié)議
Apache Licence 2.0 (英文原文) Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議。該協(xié)議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開源或商業(yè)軟件)。需要滿足的條件如下:
需要給代碼的用戶一份Apache Licence
如果你修改了代碼,需要在被修改的文件中說明。
在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標(biāo),專利聲明和其他原來作者規(guī)定需要包含的說明。
如果再發(fā)布的產(chǎn)品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對Apache Licence構(gòu)成更改。Apache Licence也是對商業(yè)應(yīng)用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售。
用戶權(quán)益
允許免費用于學(xué)習(xí)、畢設(shè)、公司項目、私活等。
對未經(jīng)過授權(quán)和不遵循 Apache 2.0 協(xié)議二次開源或者商業(yè)化我們將追究到底。Java項目分享
參考請注明:參考自 SpringBlade:https://gitee.com/smallc/SpringBlade 。另請遵循 Apache 2.0 協(xié)議。
注意:若禁止條款被發(fā)現(xiàn)有權(quán)追討 19999 的授權(quán)費。
界面
BladeX 工作流一覽
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
Sword 界面一覽
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
Saber 界面一覽
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
監(jiān)控界面一覽
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |


































