雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門(mén)教程網(wǎng)!

Java

當(dāng)前位置:主頁(yè) > 軟件編程 > Java >

springboot集成swagger過(guò)程解析

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:Java|點(diǎn)擊:

這篇文章主要介紹了springboot集成swagger過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

springboot集成swagger

1、pom.xml中引入:

<dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>

2、配置類(lèi):

@Configuration
@EnableSwagger2
public class SwaggerConfig {
  @Bean
  public Docket swaggerSpringMvcPlugin() {

    return new Docket(DocumentationType.SWAGGER_2)
        .select()
        //加了ApiOperation注解的類(lèi),才生成接口文檔
        .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
        .build();
  }

}

3、controller相應(yīng)的注解:@ApiOperation

@ApiOperation(value = "用戶(hù)登錄",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)類(lèi)放入service包下,頁(yè)面就會(huì)訪問(wèn)不到:

2》》SwaggerConfig 類(lèi)的寫(xiě)法有問(wèn)題:Docket方法挺多的,這里需要注意:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
  @Bean
  public Docket swaggerSpringMvcPlugin() {

    return new Docket(DocumentationType.SWAGGER_2)
        .select()
        //加了ApiOperation注解的類(lèi),才生成接口文檔
        .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/");

  }*

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:Spring實(shí)戰(zhàn)之使用Resource作為屬性操作示例

欄    目:Java

下一篇:Spring事務(wù)管理原理及方法詳解

本文標(biāo)題:springboot集成swagger過(guò)程解析

本文地址:http://www.jygsgssxh.com/a1/Java/8758.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有