啥,聽說你用了springboot,但是開發的接口還在裸奔?

2021-01-08 淡遠文摘

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、項目模塊

相關焦點

  • SpringBoot開發常用的註解及作用
    隨著網際網路的快速發展,不斷的湧出新的技術,springboot是什麼呢?springboot它是spring開源組織下的子項目,主要是用來簡化spring的難度以及不足,節省程式設計師的繁重的配置,為程式設計師開發過程中各種啟動器。
  • springboot如何做到接口返回JSP頁面
    環境:IDEA、java、springboot、tomcat等相關開發工具.同時,要返回jsp頁面是不能使用@RestController的,見官網相關說明:Spring Boot 2.0 由於微服務的興起而被廣為人知,當我們在做微服務開發一般需要提供接口返回JSON,在Spring 4.0 以前需要@ResponseBody + @Controller合在一起使用
  • SpringBoot 接口冪等性的實現方案
    /springboot-idempotent-token/一、什麼是冪等性冪等是一個數學與計算機學概念,在數學中某一元運算為冪等時,其作用在任一元素兩次後會和其作用一次的結果相同。二、什麼是接口冪等性在HTTP/1.1中,對冪等性進行了定義。它描述了一次和多次請求某一個資源對於資源本身應該具有同樣的結果(網絡超時等問題除外),即第一次請求的時候對資源產生了副作用,但是以後的多次請求都不會再對資源產生副作用。
  • pacebox-springboot 1.0.8 發布,java 生態框架
    pacebox-springboot 融合封裝已發布,旨在提供快速開發腳手架、打造更好的開源生態環境。
  • SpringBoot(五) :spring data jpa 的使用
    08/20/springboot(五)-spring-data-jpa的使用.html如有好文章投稿,請點擊 → 這裡了解詳情在上篇文章《 springboot(二):web綜合開發 》中簡單介紹了一下spring data jpa的基礎性使用,這篇文章將更加全面的介紹spring data jpa 常見用法以及注意事項。
  • pacebox-springboot 1.1.2 發布,java生態框架
    pacebox-springboot 融合封裝已發布,旨在提供快速開發腳手架、打造更好的開源生態環境。
  • 初學者需要知道的springboot核心概念-java程式設計師漲工資技能
    一:Spring Boot 、 Spring MVC 、Spring對比首先你需要明白一件事情:Spring Boot項目目的並不是替換Spring、SpringMVC,而是使他們用起來更加簡單。如果你能夠合理的使用DI和IOC,可以開發出鬆耦合、擴展性好的的應用程式。Spring MVCSpring MVC提供了一種友好的方式來開發Web應用程式。 通過使用諸如Dispatcher Servlet,ModelAndView和View Resolver,可以輕鬆開發Web應用程式。
  • SpringBoot+Mybatis動態切換數據源
    第一章 SSM項目中的讀寫分離(僅講解)1.1 Spring中的DataSourceDataSource是一個Spring接口,可以獲取資料庫的Connection。為什麼要設置DataSource呢,個人是這麼理解的,業務不應該被資料庫的類型所幹擾,所以設置一個DataSource接口,有需要連接直接調用接口,有需要更換資料庫也不需要改業務,改一下DataSource的實現就好了。DataSource有不同的實現方案,如c3p0連接池或者阿里的DruidDataSource連接池。
  • 「計算機畢設」基於springboot開發倉庫管理系統
    基於Springboot開發的倉庫管理系統,底層權限控制已經基於shiro實現了,直接可以作為二次開發框架使用!使用技術本套系統採用的是springboot、mybatisPlus、shiro、layui開發而成,都屬於現在比較流行的技術!看懂這個源碼絕大部分項目都能夠輕鬆應對!
  • Springboot+MybatisPlus高效實現增刪改查
    的依賴:提供了使用springboot的能力。xml文件:Mybatis的sql配置文件,對應Mapper接口。Mapper接口:就是我們平常所說的Dao層暴露的方法所在接口,接口中的方法對應xml文件中對應的sql,封裝了一些常用的增刪改查方法。service接口+service實現類:集成了Mybatis-plus的封裝類,封裝了一些常用的增刪改查方法,默認引入了對應的Mapper。
  • springboot整合mybatis實現配置多數據源
    前言:實際開發中,隨著業務的擴張,使用單一的資料庫顯然有點臃腫,不便管理,經常會實現將不同的業務模塊的數據表結構放在各自的資料庫中,下邊簡單實現sprongboot實現多數據源的配置。一 項目結構:二 涉及到的資料庫:三 springboot中的application.properties文件:本次demo簡單配置下兩個數據源為例。
  • Rocket-API 2.3.0.RELEASE,API 敏捷開發框架
    更多信息查看:開啟頁面配置功能多數據源配置rocket-api-platform 數據接口平臺軟體介紹:告別加班,拒絕重複勞動,遠離搬磚概述"Rocket-API" 基於spring boot 的API敏捷開發框架,服務端50%以上的功能只需要寫SQL或者 mongodb原始執行腳本就能完成開發,另外30%也在不停的完善公共組件,比如文件上傳,下載,導出,預覽,分頁等等通過一二行代碼也能完成開發,剩下的20%也能依賴於動態編譯技術生成class的形式,不需要發布部署,不需要重啟來實現研發團隊的快速編碼
  • Springboot之@RequestMapping註解
    版本:springboot:2.3.01、用途@RequestMapping註解將HTTP請求映射給controller來處理,包括返回視圖頁面的controller和Rest服務的controller。
  • 黑馬程式設計師:SpringBoot教程,SpringBoot高級之原理分析
    第四步:實現Condition新建一個ClassCondition類,實現Condition接口裡的matches方法來控制類的加載新建一個類實現Condition接口public1.3.1、創建兩個模塊一個是springboot-enable,一個是springboot-enable-other1.3.2、創建實體類與配置類package com.itheima.domain
  • API接口常識你不懂,怎麼和開發交流呢
    在產品開發過程中,當涉及到前後端數據交互的時候,基本離不開接口的調用,常常聽到開發提到這個接口還沒有調通呢,還需要一定的工作量。對於剛接觸產品工作的新手而言,可以會一臉懵逼:什麼是接口,為什麼接口調試的時候要花費大量的時間啊。我不是技術,我怎麼清楚開發這個功能需要多少接口,需要聯調哪些東西呢。
  • iPhone12 屏幕更換費2149元如此昂貴,你還敢讓手機裸奔嗎?
    等到碎碎平安的時候,你就知道心裡有多痛了,據悉今年的iPhone12系列手機在官網的換屏手機價格挺貴的,iPhone12Pro2149元,而iPhone12也是2149元,目前iPhone12mini和iPhone12pro max還沒有發售也就沒有公布了。
  • spring security 整合 springboot 入門案例
    這一節我們來學習一下 spring security 與 springboot 整合,為了力求簡單,此處不演示資料庫相關操作。我們上來就是用了兩個註解,@EnableWebSecurity 啟用 web 安全,@EnableGlobalMethodSecurity(prePostEnabled = true) 啟用方法級別的安全校驗。
  • 「精品源碼分享」springboot開發的學校教務管理系統
    前言大家好,我是it分享師,今天給大家帶來一個基於Springboot開發的精緻的學校教務管理系統的源碼!如果覺得本文對您有用的話,點讚,轉發,關注三連,私信我獲取源碼!創作不易,謝謝支持!使用技術該系統使用了springboot+mybatis+layui+shiro+jquery等技術開發而成有3個基本角色,為管理員,老師和學生!管理員具有這些模塊的所有功能!老師具有課程管理,成績管理,學生管理等功能!學生有選課管理等功能!基本實現了學校學生選課的一個後臺管理系統!
  • SpringBoot 全局日期格式化(基於註解)
    另外還可以根據時區動態展示不同時間,厲害了,你會嗎?作者:yizhiwazi連結:https://www.jianshu.com/p/f4654d251104學習目標快速學會通過註解 @JsonComponent自定義日期格式化的序列化器。
  • Springboot @EnableWebMvc 註解
    }並且如果容器中存在  WebMvcConfigurationSupport 這個類,那麼 springboot 對於 springmvc 的自動配置將會失效可以看到這個類中都是一些空方法,只是保留了最基本的 MVC 的功能,並不具備其它的擴展功能如下:springboot 對於 mvc 模塊的配置就在 WebMvcAutoConfiguration