關(guān)于使用swagger整合springMVC的方法
前文:
在日常工作中,開(kāi)發(fā)人員經(jīng)常會(huì)遇到寫(xiě)接口文檔的工作,一般都是word文檔,帶來(lái)書(shū)寫(xiě)麻煩、維護(hù)麻煩的問(wèn)題,比如改了源代碼忘了更新文檔、解釋不明確帶來(lái)歧義、無(wú)法在線(xiàn)嘗試等等。swagger就是為了解決這些問(wèn)題而產(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依賴(lài):
<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ì)包中的所有類(lèi)進(jìn)行掃描,以完成Bean創(chuàng)建和自動(dòng)依賴(lài)注入的功能 稍后會(huì)創(chuàng)建該包:webmvct.cmd -->
<context:component-scan base-package="webmvct.cmd"/>解釋?zhuān)簊wagger會(huì)掃描 base-package包下的所有類(lèi),生成api文檔
將docapi文件下的index.html文件,url改為本工程的路徑,如下圖,

截止到現(xiàn)在,最簡(jiǎn)單的swagger配置已經(jīng)完成。訪(fǎng)問(wèn) //localhost:8080/hi/docapi/index.html 就可以看到效果。
途徑二:
如果想進(jìn)一步的定制,比如只掃描某個(gè)包下的某些路徑,那么就需要用到定制類(lèi),途徑二是基于途徑一在功能上的擴(kuò)展,所以要想達(dá)到定制效果首先將途徑一配置好。
創(chuàng)建swaggerspringconfig定制類(lèi),比如
@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包下的類(lèi)也包含在內(nèi)進(jìn)行掃描;
customImplementation方法的includePatterns可以進(jìn)行過(guò)濾,只include含有store的路徑
controller類(lèi)的樣例:
@Api(value="/store",description="商店")
@Controller
@RequestMapping("/store")
public class StoreController {
@RequestMapping(value = "/{storeid}",method=RequestMethod.GET)
@ResponseBody
@ApiOperation(value="獲取商店信息",notes="通過(guò)商店id獲取商店信息")
public Store getStore(String storeid){
return new Store();
}
@ApiOperation(value="獲取商店信息",notes="通過(guò)商店name獲取商店信息")
@ResponseBody
@RequestMapping(value = "/{storename}",method=RequestMethod.POST)
public Store getStore2(String storeid){
return new Store();
}
}@api,用在類(lèi)上,用于解釋整個(gè)類(lèi)。
@apioperation,用于方法上,value是籠統(tǒng)的介紹方法作用,notes是詳細(xì)的說(shuō)明方法作用
最終效果圖:

以上配置參考:
swagger整合spring mvc的doc點(diǎn)擊打開(kāi)鏈接
swagger注解說(shuō)明 點(diǎn)擊打開(kāi)鏈接
到此這篇關(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ǔ):線(xiàn)性表
這篇文章主要介紹了Java的數(shù)據(jù)解構(gòu)基礎(chǔ),希望對(duì)廣大的程序愛(ài)好者有所幫助,同時(shí)祝大家有一個(gè)好成績(jī),需要的朋友可以參考下,希望能給你帶來(lái)幫助2021-07-07
分析設(shè)計(jì)模式之模板方法Java實(shí)現(xiàn)
所謂模板方法模式,就是一個(gè)對(duì)模板的應(yīng)用,就好比老師出試卷,每個(gè)人的試卷都是一樣的,這個(gè)原版試卷就是一個(gè)模板,可每個(gè)人寫(xiě)在試卷上的答案都是不一樣的,這就是模板方法模式。它的主要用途在于將不變的行為從子類(lèi)搬到超類(lèi),去除了子類(lèi)中的重復(fù)代碼2021-06-06
SpringBoot項(xiàng)目集成依賴(lài)Mybatis步驟
在本篇文章中小編給大家分享了關(guān)于SpringBoot項(xiàng)目如何集成依賴(lài)Mybatis的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-06-06
SpringMVC 使用JSR-303進(jìn)行校驗(yàn) @Valid示例
本篇文章主要介紹了SpringMVC 使用JSR-303進(jìn)行校驗(yàn) @Valid示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
rabbitmq結(jié)合spring實(shí)現(xiàn)消息隊(duì)列優(yōu)先級(jí)的方法
本篇文章主要介紹了rabbitmq結(jié)合spring實(shí)現(xiàn)消息隊(duì)列優(yōu)先級(jí)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Flutter 通過(guò)Clipper實(shí)現(xiàn)各種自定義形狀的示例代碼
這篇文章主要介紹了Flutter 通過(guò)Clipper實(shí)現(xiàn)各種自定義形狀的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

