Popular MVC框架
傳送門
Gitee源碼地址:https://gitee.com/danyuanblog/PopularMVC
演示地址:http://www.danyuanblog.com:8181/doc.html
官方文檔地址:http://www.danyuanblog.com/blog/app/blog/blogDetail.html?id=5fe86eb74c636312f4b70955
1、應用場景
簡介
啥,聽說你用了springboot,但是開發的接口還在裸奔?快來試試這個PopularMVC吧,它也許是你想要找的神器!
神器亮相springboot叫一鍵啟動,popularmvc為你的springboot項目插上翅膀,力求一鍵起飛!
1.1 項目架構說明
1.1.1 PopularMVC跟Springboot的關係
說明
PopularMVC是基於springboot開發的,自然強依賴於springboot和springmvcPopularMVC在springboot提供的能力之上,為開發者編寫API接口提供了很多額外的便利性
示意圖PopularMVC使用了springboot帶來的所有便利,其在springmvc的基礎上提供了額外的功能增強,如下圖所示
1.1.2 PopularMVC項目組件架構解析
架構圖
組件介紹主要分為以下幾類組件支持自定義系統錯誤碼、業務錯誤碼支持業務錯誤碼自動生成支持業務錯誤碼以異常的方式拋出,系統自動處理API響應自動包裝預處理器API響應錯誤碼和系統參數定製化轉換器請求參數解密器響應參數加密器系統參數自動填充器響應參數國際化翻譯器系統參數校驗器請求參數校驗器數字籤名請求驗籤器、響應加籤器接口防重複提交控制器接口用戶會話控制器接口日誌列印器接口訪問控制器請求、響應內容裝飾器API調用攔截器基於AOP切面設計的一套API請求、響應攔截處理流程。提供了在調用接口前後做一些通用的預處理,比如說參數校驗、參數裝飾、訪問控制、日誌輸出、會話控制等等。目前內置的攔截器有:也支持業務靈活定製通用的API調用攔截器。參數裝飾器參數裝飾器機制通過遍歷參數內容,逐個欄位進行修飾,具體修飾規則由特定的裝飾器制定。常見的使用場景有,對請求參數解密、響應參數加密、響應參數國際化、響應參數脫敏等等注意:參數裝飾器只能對參數內容做修飾,而無法改變參數類型。目前內置的參數裝飾器有:也支持業務靈活拓展參數裝飾器。API響應序列化預處理器響應預處理器機制可以在接口返回內容給調用者之前進行額外的處理,此時可以更靈活的修飾返回內容,可以突破無法修改參數類型的限制,適用於對整個響應結構定製化處理的場景。目前內置的響應預處理器有:當然,也支持業務靈活拓展。方法查詢緩存攔截器提供對查詢類方法調用的結果進行緩存。API異常統一處理器接口調用過程中任何步驟出現異常,均能自動處理,並反饋信息給調用者。支持對特定異常自定義處理,如果未處理,統一交由內置的默認異常處理器進行護理。統一國際化翻譯管理器接口返回內容均支持國際化翻譯能力。已整合了spring i18n國際化翻譯能力,也支持拓展業務自定義國際化翻譯器。統一錯誤碼管理器研發人員無需再關注業務錯誤碼的定義和國際化翻譯工作,可以做到定義簡單、使用簡單、易於理解、配置靈活自動接口文檔生成器已內置swagger+knif4j,只需指定API包路徑即可實現接口文檔的自動生成。1.2 其他說明
如果你有遇到如下困擾時,你也許可以嘗試使用PopularMVC框架現在你有福了,你只需要引入PopularMVC框架,並為你的SpringBoot應用添加@EnablePopularMvc註解,即可解決上述所有的困擾!伺服器API缺乏統一標準的輸入輸出參數,難以統一規範開發人員的接口格式缺乏簡單、高效、統一的接口異常處理機制絞盡腦汁思考錯誤碼的命名、編號和處理機制雖然使用參數校驗註解校驗API請求參數已經非常方便,但是又對其缺乏校驗結果的統一處理而苦惱項目服務於多個國家的用戶,繁重的國際化工作也許會讓你崩潰API缺乏權限控制、安全認證、數據加密、防重複提交等等,直接裸奔還沒有找到順手的伺服器緩存工具,對springcache的註解槽點滿滿等時常為了寫接口文檔而佔用太多coding time,而且接口文檔還無法實時與接口變更保持同步PopularMVC為你默默做了哪些工作呢?首先,PopularMVC是基於springboot的web應用框架,享受了springboot帶來的一切便利性再者,其對開發WEB JSON API 的規範性、易用性、健壯性做了很多的業務增強PopularMVC的存在意義在哪?一個字,那就是"爽",讓開發者爽,讓接口使用者爽!規範web應用的API輸入輸出簡化開發人員的工作,節省研發成本,給開發者無微不至的關愛!PopularMVC提供的業務功能有哪些呢?那麼請聽我慢慢道來,其提供了如下業務功能:規範API請求參數,支持系統參數名自定義和系統參數的拓展,系統參數的校驗等等規範API響應參數,支持系統參數名自定義和添加額外的系統參數API響應信息自動補全系統參數,開發者無需再手動添加響應殼信息應用內統一的國際化翻譯能力,已經整合spring i18n,而且支持業務靈活拓展國際化能力接口響應信息國際化,為需要國際化的欄位添加@LanguageTranslate註解即可自動翻譯內容後返回給調用者統一的異常處理機制,全局攔截API調用異常並處理,處理結果經國際化處理後以標準的API響應格式返回給調用者,業務側可以對特定異常進行靈活處理簡單易用的接口錯誤碼,發現不滿足API執行條件,直接拋出BusinessException異常即可通過統一異常處理機製得到預期的API響應。支持自定義系統錯誤碼、業務錯誤碼;依據業務錯誤碼KEY值自動生成錯誤碼數值;並可以對服務內的自動生成的業務錯誤碼值進行範圍限制,這樣有助於不同業務服務間的錯誤碼分段;API請求參數、響應參數的自動校驗,校驗結果自動處理後通過API響應反饋給調用者簡單方便的緩存管理器,使用Guava cache作為默認的本地緩存管理器,支持緩存管理器的靈活拓展,提供@CacheMethodResult和@CacheMethodResultEvict註解實現方法接口結果的緩存和失效接口安全相關組件,驗籤、加解密、防重複提交等等,使用時只需要為你的API添加一個註解即可搞定接口會話管理機制,提供Guava cache實現的默認本地會話管理器,支持業務靈活定製以支持分布式會話管理接口文檔化支持,提供了swagger接口文檔自動生成,並整合了knife4j提供簡單易用的實時api文檔接口調用日誌列印,提供對接口請求參數信息、接口響應信息的簡要列印,預留了接口調用日誌持久化機制,用於業務方定製流量監控相關功能web容器性能參數優化(迭代加)接口實時流量監控和管理(迭代加)更細粒度的接口訪問權限控制(迭代加),主要為應用提供簡潔易用的內置權限管理組件日誌採集功能的集成支持(迭代加)devops的支持(迭代加)2、項目模塊