本篇文章給大家分享的是有關(guān)springboot中如何集成swagger,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司專業(yè)提供四川電信機(jī)房托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購(gòu)買(mǎi)四川電信機(jī)房托管服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。
springboot集成swagger
1、pom.xml中引入:
io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2
2、配置類:
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket swaggerSpringMvcPlugin() { return new Docket(DocumentationType.SWAGGER_2) .select() //加了ApiOperation注解的類,才生成接口文檔 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .build(); } }
3、controller相應(yīng)的注解:@ApiOperation
@ApiOperation(value = "用戶登錄",notes = "") @PostMapping("/loginOn") public ResponseMessage loginOn(@RequestBody @Valid UserReq userReq){ ResponseMessage responseMessage = userServiceImp.loginOn(userReq); return responseMessage; }
最后本地默認(rèn)訪問(wèn):http://localhost:8080/swagger-ui.html
既可以看到相關(guān)接口效果圖:
訪問(wèn)頁(yè)失敗的可能原因:
1》》訪問(wèn)方法本來(lái)就是404錯(cuò)誤:在sprigboot中有個(gè)重要的概念叫做:約定優(yōu)于配置:
springboot啟動(dòng)的時(shí)候如果沒(méi)有指定掃描的包路徑時(shí),默認(rèn)會(huì)去加載其當(dāng)前包及子包下的組件,這里需要注意
如果把啟動(dòng)類放入service包下,頁(yè)面就會(huì)訪問(wèn)不到:
2》》SwaggerConfig 類的寫(xiě)法有問(wèn)題:Docket方法挺多的,這里需要注意:
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket swaggerSpringMvcPlugin() { return new Docket(DocumentationType.SWAGGER_2) .select() //加了ApiOperation注解的類,才生成接口文檔 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .build(); } }
3》》配置攔截器時(shí)是否進(jìn)行了攔截:
在實(shí)現(xiàn)WebMvcConfigurer接口時(shí),我們?cè)倥渲脭r截器時(shí),需要對(duì)相應(yīng)的請(qǐng)求進(jìn)行過(guò)濾放行,比如靜態(tài)資源,登錄請(qǐng)求等
@Configuration public class WebConfig implements WebMvcConfigurer { /** * 配置攔截器 * @param registry */ @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new RequestInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/login") //排除swagger .excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**"); } }
有的代碼是通過(guò)重寫(xiě)WebMvcConfigurer的addResourceHandlers方法:
/** * 添加靜態(tài)資源--過(guò)濾swagger-api (開(kāi)源的在線API文檔) * @param registry *//* @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //過(guò)濾swagger registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); registry.addResourceHandler("/swagger-resources/**") .addResourceLocations("classpath:/META-INF/resources/swagger-resources/"); registry.addResourceHandler("/swagger/**") .addResourceLocations("classpath:/META-INF/resources/swagger*"); registry.addResourceHandler("/v2/api-docs/**") .addResourceLocations("classpath:/META-INF/resources/v2/api-docs/"); }*
以上就是springboot中如何集成swagger,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。