關(guān)于使用swagger整合springMVC的方法
前文:
在日常工作中,開發(fā)人員經(jīng)常會(huì)遇到寫接口文檔的工作,一般都是word文檔,帶來書寫麻煩、維護(hù)麻煩的問題,比如改了源代碼忘了更新文檔、解釋不明確帶來歧義、無(wú)法在線嘗試等等。swagger就是為了解決這些問題而產(chǎn)生的。這是官方的例子,截圖如下
swagger原理
后臺(tái):后端部分與java集成,后最終會(huì)產(chǎn)生一個(gè)json文件。
前臺(tái):前臺(tái)部分就是html、css、js文件,js利用后臺(tái)產(chǎn)生的json文件構(gòu)造api;
前臺(tái)配置:
去https://github.com/swagger-api/swagger-ui 下載zip包,解壓后,將dist文件夾下的所有內(nèi)容copy到,java web project的webapp下,比如,
maven依賴:
<repositories> <repository> <id>jcenter-release</id> <name>jcenter</name> <url>http://oss.jfrog.org/artifactory/oss-release-local/</url> </repository> </repositories> <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc</artifactId> <version>1.0.1</version> </dependency>
后臺(tái)配置:
途徑一:
在spring的applicationcontext.xml文件中,添加配置
<mvc:annotation-driven/> <bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" /> <!-- 對(duì)包中的所有類進(jìn)行掃描,以完成Bean創(chuàng)建和自動(dòng)依賴注入的功能 稍后會(huì)創(chuàng)建該包:webmvct.cmd --> <context:component-scan base-package="webmvct.cmd"/>
解釋:swagger會(huì)掃描 base-package包下的所有類,生成api文檔
將docapi文件下的index.html文件,url改為本工程的路徑,如下圖,
截止到現(xiàn)在,最簡(jiǎn)單的swagger配置已經(jīng)完成。訪問 //localhost:8080/hi/docapi/index.html 就可以看到效果。
途徑二:
如果想進(jìn)一步的定制,比如只掃描某個(gè)包下的某些路徑,那么就需要用到定制類,途徑二是基于途徑一在功能上的擴(kuò)展,所以要想達(dá)到定制效果首先將途徑一配置好。
創(chuàng)建swaggerspringconfig定制類,比如
@Configuration @EnableSwagger //Loads the spring beans required by the framework @ComponentScan("com.test") public class MySwaggerConfig { private SpringSwaggerConfig springSwaggerConfig; /** * Required to autowire SpringSwaggerConfig */ @Autowired public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) { this.springSwaggerConfig = springSwaggerConfig; } /** * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc framework - allowing for multiple * swagger groups i.e. same code base multiple swagger resource listings. */ @Bean public SwaggerSpringMvcPlugin customImplementation(){ return new SwaggerSpringMvcPlugin(this.springSwaggerConfig) .includePatterns(".*store.*"); } }
@componentscan,將com.test包下的類也包含在內(nèi)進(jìn)行掃描;
customImplementation方法的includePatterns可以進(jìn)行過濾,只include含有store的路徑
controller類的樣例:
@Api(value="/store",description="商店") @Controller @RequestMapping("/store") public class StoreController { @RequestMapping(value = "/{storeid}",method=RequestMethod.GET) @ResponseBody @ApiOperation(value="獲取商店信息",notes="通過商店id獲取商店信息") public Store getStore(String storeid){ return new Store(); } @ApiOperation(value="獲取商店信息",notes="通過商店name獲取商店信息") @ResponseBody @RequestMapping(value = "/{storename}",method=RequestMethod.POST) public Store getStore2(String storeid){ return new Store(); } }
@api,用在類上,用于解釋整個(gè)類。
@apioperation,用于方法上,value是籠統(tǒng)的介紹方法作用,notes是詳細(xì)的說明方法作用
最終效果圖:
以上配置參考:
swagger整合spring mvc的doc點(diǎn)擊打開鏈接
swagger注解說明 點(diǎn)擊打開鏈接
到此這篇關(guān)于關(guān)于使用swagger整合springMVC的方法的文章就介紹到這了,更多相關(guān)swagger整合springMVC內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):線性表
這篇文章主要介紹了Java的數(shù)據(jù)解構(gòu)基礎(chǔ),希望對(duì)廣大的程序愛好者有所幫助,同時(shí)祝大家有一個(gè)好成績(jī),需要的朋友可以參考下,希望能給你帶來幫助2021-07-07分析設(shè)計(jì)模式之模板方法Java實(shí)現(xiàn)
所謂模板方法模式,就是一個(gè)對(duì)模板的應(yīng)用,就好比老師出試卷,每個(gè)人的試卷都是一樣的,這個(gè)原版試卷就是一個(gè)模板,可每個(gè)人寫在試卷上的答案都是不一樣的,這就是模板方法模式。它的主要用途在于將不變的行為從子類搬到超類,去除了子類中的重復(fù)代碼2021-06-06SpringBoot項(xiàng)目集成依賴Mybatis步驟
在本篇文章中小編給大家分享了關(guān)于SpringBoot項(xiàng)目如何集成依賴Mybatis的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-06-06SpringMVC 使用JSR-303進(jìn)行校驗(yàn) @Valid示例
本篇文章主要介紹了SpringMVC 使用JSR-303進(jìn)行校驗(yàn) @Valid示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02rabbitmq結(jié)合spring實(shí)現(xiàn)消息隊(duì)列優(yōu)先級(jí)的方法
本篇文章主要介紹了rabbitmq結(jié)合spring實(shí)現(xiàn)消息隊(duì)列優(yōu)先級(jí)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02Flutter 通過Clipper實(shí)現(xiàn)各種自定義形狀的示例代碼
這篇文章主要介紹了Flutter 通過Clipper實(shí)現(xiàn)各種自定義形狀的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12