zuihou-admin-cloud 1.7 發布,操作日志記錄支持 SpEL 表達式

最后_
 最后_
發布于 2020年02月13日
收藏 11

今日更新日志:

1. 修復數據權限攔截器執行順序不對導致的 數據bug  # fix I197PH
2. 用戶表增加 民族、學歷、職位狀態等 數據字典類型的字段, 并對接前后端頁面
3. 修復定時發送短信接口報錯的bug
4. 將業務代碼中一些過時的方法替換成 hutool的相關方法
5. 委婉修復Jobs服務,首次啟動報錯的問題 (其實這個報錯不算bug,但為了讓大家減少疑惑,就調整了一下)
6. 優化代碼生成器生成代碼的可讀性
7. 修改系統前后端交互時,拉取枚舉和字典字段的方式為實時拉取。(原來是登錄時拉取后緩存在前端,有數據不一致的bug)
8. 操作日志記錄支持 SpEL 表達式 
9. 代碼生成器支持識別 注解上用 feign 模式
10. 優化部分過時、無用、缺陷、bug代碼

 

簡介:


基于`SpringCloud(Hoxton.SR1)`  + `SpringBoot(2.2.2.RELEASE)` 的 SaaS型微服務腳手架,具備用戶管理、資源權限管理、網關統一鑒權、Xss防跨站攻擊、自動代碼生成、多存儲系統、分布式事務、分布式定時任務等多個模塊,支持多業務系統并行開發,支持多服務并行開發,可以作為后端服務的開發腳手架。代碼簡潔,架構清晰,非常適合學習使用。核心技術采用Nacos、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis、SpringBoot、Seata、Nacos、Sentinel、RabbitMQ、FastDFS等主要框架和中間件。

希望能努力打造一套從 SaaS基礎框架 - 分布式微服務架構 - 自動化部署 - 系統監測 的解決方案。本項目旨在實現基礎能力,不涉及具體業務。
 

功能點介紹:

服務注冊與調用:

基于Eureka來實現的服務注冊與調用,在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠程服務時能與調用本地方法一樣的編碼體驗,開發者完全感知不到這是遠程方法,更感知不到這是個HTTP請求。

 服務鑒權:

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

負載均衡:

將服務保留的rest進行代理和網關控制,除了平常經常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以幫我們進行正常的網關管控和負載均衡。其中擴展和借鑒國外項目的擴展基于JWT的Zuul限流插件,方面進行限流。

 熔斷機制:

因為采取了服務的分布,為了避免服務之間的調用“雪崩”,采用了Hystrix的作為熔斷器,避免了服務之間的“雪崩”。

監控:

利用Spring Boot Admin 來監控各個獨立Service的運行狀態;利用turbine來實時查看接口的運行狀態和調用頻率;通過Zipkin來查看各個服務之間的調用鏈等。

數據權限:

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

SaaS的無感解決方案:

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

二級緩存:

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

優雅的Bean轉換:

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

前后端統一表單驗證:

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

防跨站腳本攻擊(XSS):

  •      通過過濾器對所有請求中的 表單參數 進行過濾
  •      通過Json反序列化器實現對所有 application/json 類型的參數 進行過濾

當前用戶信息注入器:

 通過注解實現用戶身份注入

在線API:

由于原生swagger-ui某些功能支持不夠友好,故采用了國內開源的 knife4j ,并制作了stater,方便springboot用戶使用。

代碼生成器:

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

定時任務調度器:

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

漢化 Eureka 注冊中心頁面:

請切換分支進行查看

大文件/斷點/分片續傳:

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

分布式事務:

集成了阿里的分布式事務中間件:seata,以 高效 并且對業務 0侵入 的方式,解決 微服務 場景下面臨的分布式事務問題。

關聯數據自動注入:

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

項目代碼地址

項目 gitee github 備注
微服務項目 https://gitee.com/zuihou111/zuihou-admin-cloud https://github.com/zuihou/zuihou-admin-cloud SpringCloud 版本后端代碼
單體項目 https://gitee.com/zuihou111/zuihou-admin-boot https://github.com/zuihou/zuihou-admin-boot SpringBoot 版本后端代碼
租戶后臺 https://gitee.com/zuihou111/zuihou-ui https://github.com/zuihou/zuihou-ui | 給客戶使用的前端
開發&運營后臺 https://gitee.com/zuihou111/zuihou-admin-ui https://github.com/zuihou/zuihou-admin-ui 給公司內部開發&運營&運維等人員使用
代碼生成器   https://github.com/zuihou/zuihou-generator 開發人員使用

演示地址 (演示賬號沒有寫權限,只能查詢)

項目 演示地址 管理員賬號 普通賬號
租戶后臺 http://tangyh.top:10000/zuihou-ui zuihou/zuihou test/zuiou
開發&運營后臺 http://tangyh.top:180/zuihou-admin-ui demoAdmin/zuihou
本站文章除注明轉載外,均為本站原創或編譯。歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動共創開源社區。
轉載請注明:文章轉載自 OSCHINA 社區 [http://www.unfhffyc.icu]
本文標題:zuihou-admin-cloud 1.7 發布,操作日志記錄支持 SpEL 表達式
加載中
返回頂部
頂部
真人龙虎斗论坛