SpringBoot整合knife4j

609 阅读1分钟

1,Knife4j简介

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,它封装了swagger。前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!

官方文档:doc.xiaominfo.com/

2,SpringBoot集成Knife4j

1,在pom文件中引入knife4j依赖

# 注:knife4j中包含了swagger,只需这一个依赖就行
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

2,添加配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean(value = "defaultApi2")
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("SwaggerGroupOneAPI")
                //是否开启(生产环境建议隐藏)
                .enable(true)
                .select()
                //为当前包下controller生成API文档
                .apis(RequestHandlerSelectors.basePackage("com.xybian.mall.tiny.controller"))
                //为有@Api注解的Controller生成API文档
//                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                //为有@ApiOperation注解的方法生成API文档
//                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("SwaggerUI演示")
                .description("mall-tiny")
                .version("1.0")
                .build();
    }
}

3,访问

以上就整合了knife4j,可以访问

http://主机:端口号/doc.html

image.png

4,注意

image.png

若出现这个问题,解决办法:

  • 法一:在 application.yml 中添加

image.png

  • 法二:降低springboot的版本,降到 2.5.X