(二)springboot整合之knife4j(详细)

knife4j除了引入依赖和配置启动类和swagger不一样其他都一样

1.创建项目

2.引入依赖

<!-- knife4j接口文档 start -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.2</version>
</dependency>
<!-- 避免版本冲突 -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>29.0-jre</version>
</dependency>

3.编写Knife4jConfig (配置docket和apiinfo)

@Configuration
@EnableSwagger2
public class Knife4jConfig {
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("DerKing部分")
                .apiInfo(apiInfo())
                .select()//选择
                //可以扫描 any none 指定包  指定类  指定方法
                .apis(RequestHandlerSelectors.basePackage("com.example"))
//                .paths(PathSelectors.ant("com.example.controller/**")) 过滤不需要扫描的路径
                .build();//创建
    }
  

    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("可心的kenfej文档")
                .description("我想认真读一本书")
                .version("v3.0")
                .termsOfServiceUrl("https://blog.csdn.net/weixin_58993861?type=blog")
                .contact("程序员")
                .build();

    }
}

4.配置启动类

使用@ConditionalOnClass(SpringfoxWebMvcConfiguration.class)注解

实现 WebMvcConfigurer 接口,重写 addResourceHandlers 方法

实现启动类  加载knife4j的静态资源

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.spring.web.SpringfoxWebMvcConfiguration;

@SpringBootApplication
@ConditionalOnClass(SpringfoxWebMvcConfiguration.class)
public class Knife4jApplication implements WebMvcConfigurer {

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

    实现启动类  加载knife4j的静态资源
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

(二)springboot整合之knife4j(详细)

到这里就可以启动项目了 访问http://localhost:8080/doc.html(记得在拦截器里放开请求)

5.具体使用(controller层使用  实体类使用 分组展示)

controller层的使用:

@API @ApiModel:类注释     @Api(tags = "移动管理端--异常处理")

@ApiOperation:方法注释  @ApiOperation(value = "请求400页面")

@ApiParam:参数注释          @ApiParam("用户名")

@Api(tags = "移动管理端--异常处理")
@RestController
public class HellController {

    @ApiOperation(value = "请求400页面")
    @GetMapping("/h")
    public User he(){
        return new User();
    }

    @ApiOperation(value = "请求401页面")
    @GetMapping("/hell")
    public String helo(@ApiParam("用户名") String username, @ApiParam("密码") String password){
        return username + password;
    }

}

(二)springboot整合之knife4j(详细)

 实体类使用:

@API @ApiModel:类注释    @ApiModel("用户实体类")

@ApiModelProperty     @ApiModelProperty("用户名")

@ApiModel("用户实体类")
public class User {
    @ApiModelProperty("用户名")
    public String username;
    @ApiModelProperty("密码")
    public String password;

}

(二)springboot整合之knife4j(详细)

 分组展示:

配置两个Docket就行了。

 

上一篇:我在b站学python之基础学习十八:模块


下一篇:BasicDao、浅谈MVC架构