SpringBoot 集成 knife4j (Swagger2)


SpringBoot 集成 knife4j (Swagger2)

前提 :本文 spring boot版本為 2.6.1 ,knife4j 版本為:3.0.3

1、初始化項目,導入pom依賴

<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

2、創建Swagger配置類

@Configuration
public class Swagger2Config {



    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(this.apiInfo())
                .select()
                // 這里可以指定掃描包的路徑 或者 掃描指定的注解
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build().protocols(this.newHashSet("https","http"));
    }

    @SafeVarargs
    private final <T> Set<T> newHashSet(T... ts) {
        return ts.length > 0 ? new LinkedHashSet(Arrays.asList(ts)) : null;
    }


    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Swagger接口文檔")
                .description("文檔描述")
                .contact( new Contact("xmStudy","https://www.cnblogs.com/XiaoMingStudy1/","123@qq.com"))
                .termsOfServiceUrl("")
                .version("1.0")
                .build();
    }

}

最終項目結構圖如下:

image-20211209181859354

3、出現的問題

項目啟動失敗

image-20211209145058757

4、解決問題

原因分析:在springboot 2.6.0會提示documentationPluginsBootstrapper NullPointerException,具體位置的WebMvcPatternsRequestConditionWrapper中的condition為null。原因是在springboot2.6.0中將SpringMVC 默認路徑匹配策略從AntPathMatcher 更改為PathPatternParser,導致出錯,解決辦法是切換會原先的AntPathMatcher

解決問題:在properties中加上spring.mvc.pathmatch.matching-strategy=ant-path-matcher

5、項目正常啟動,訪問一下

ip為 ip:port/doc.html, 如 http://localhost:8080/doc.html#/home

image-20211209181922447

6 參考連接

  1. Knife4j 官方文檔:https://doc.xiaominfo.com/knife4j/
  2. Github地址:https://github.com/xiaoymin/swagger-bootstrap-ui/issues/396
  3. Gitee地址:https://toscode.gitee.com/xiaoym/knife4j


免責聲明!

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



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