Springboot + Swagger3 配置


1.添加swagger3的starter依賴包

<dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-boot-starter</artifactId>
     <version>3.0.0</version>
 </dependency>

2.在springboot主程序類添加@EnableOpenApi開關注解。

@EnableOpenApi
@SpringBootApplication
public class SpringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }

}

3.(可選)添加靜態資源映射

2.x版本swagger的靜態資源路徑符合springboot添加的靜態資源映射默認配置規則,3.0.0由於swagger首頁的資源路徑變更后不再符合springboot的默認規則,需要手動添加。(我項目中注釋掉靜態資源映射也是可以正常訪問swagger3的)

package com.example.springboottest.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    public void addResourceHandlers(ResourceHandlerRegistry registry){
        //所有項目基礎路徑 + /swagger-ui/** 的url訪問
    //都將從classpath:/META-INF/resources/webjars/springfox-swagger-ui/目錄下獲取靜態資源
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
                .resourceChain(false);
    }
}

4.(可選)自定義首頁屬性 Docket配置

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
public class Swagger3 {
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.OAS_30).apiInfo(
                new ApiInfoBuilder()
                .contact(new Contact("zhangsan","","99***@qq.com"))
                .title("springboot測試項目")
                .build()
        );
    }
}

輸入訪問路徑http://localhost:8081/swagger-ui/index.html
image

補充
我啟動項目的時候,spring-plugin-core報錯,提示Correct the classpath of your application so that it contains a single, compatible version of org.springframework.plugin.core.PluginRegistry
解決方案:強制將依賴版本升級到2.0,問題解決

 <!--swagger3接口文檔生成器-->
       <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
           <exclusions>
               <exclusion>
                   <groupId>org.springframework.plugin</groupId>
                   <artifactId>spring-plugin-core</artifactId>
               </exclusion>
               <exclusion>
                   <groupId>org.springframework.plugin</groupId>
                   <artifactId>spring-plugin-metadata</artifactId>
               </exclusion>
           </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-core</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-metadata</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM