• Springboot 整合 knife4j文档最简单配置


    项目场景:

        项目场景:这里项目一直用baldex的框架,然后引入的balde封装的swager的包,去配置knife4j接口文档,今天自己建一个一个没有bladex的springboot,去配置knife4j,问题频出,显示报缺少springfox依赖,后来启动打开接口文档网址,老是报/swagger-resources 404的错误,配置WebMvcConfigurer拦截器过滤也不行,后来不断尝试各种办法终于解决了。


    原因分析:

    友情提示

    1、目前已经发行的Knife4j版本,Knife4j本身已经引入了springfox,开发者在使用时不用再单独引入Springfox的具体版本,否额会导致版本冲突。另外在网关层聚合(例如gateway)时,必须禁用Knife4j的增强模式

    2、使用Knife4j2.0.6及以上的版本,Spring Boot的版本必须大于等于2.2.x

    3、微服务聚合组件Knife4jAggregation强势发布,聚合OpenAPI文档太简单了,详见文档

    4、Knife4j独立运行版本Knife4jAggregationDesktop强势发布,使用Knife4j渲染OpenAPI文档很简单,详见文档

    Java开发使用Knife4j目前有一些不同的版本变化,详见版本说明,主要如下:

    1、如果开发者继续使用OpenAPI2的规范结构,底层框架依赖springfox2.10.5版本,那么可以考虑Knife4j的2.x版本

    1. <dependency>
    2. <groupId>com.github.xiaoymingroupId>
    3. <artifactId>knife4j-spring-boot-starterartifactId>
    4. <version>2.0.9version>
    5. dependency>

    2、如果开发者使用OpenAPI3的结构,底层框架依赖springfox3.0.0,可以考虑Knife4j的3.x版本

    1. <dependency>
    2. <groupId>com.github.xiaoymingroupId>
    3. <artifactId>knife4j-spring-boot-starterartifactId>
    4. <version>3.0.3version>
    5. dependency>

     3、如果开发者底层框架使用的是springdoc-openapi框架,则需要使用Knife4j提供的对应版本,需要注意的是该版本没有Knife4j提供的增强功能,是一个纯Ui。

    1. <dependency>
    2. <groupId>com.github.xiaoymingroupId>
    3. <artifactId>knife4j-springdoc-uiartifactId>
    4. <version>3.0.3version>
    5. dependency>

    配置教程:

    本次示例使用Spring Boot作为脚手架来快速集成Knife4j,Spring Boot版本2.3.5.RELEASE,Knife4j版本2.0.7

    第一步:在maven项目的pom.xml中引入Knife4j的依赖包,代码如下:

    1. <dependency>
    2. <groupId>com.github.xiaoymingroupId>
    3. <artifactId>knife4j-spring-boot-starterartifactId>
    4. <version>2.0.9version>
    5. dependency>

    第二步:创建Swagger配置依赖,代码如下:

    1. import org.springframework.context.annotation.Bean;
    2. import org.springframework.context.annotation.Configuration;
    3. import springfox.documentation.builders.ApiInfoBuilder;
    4. import springfox.documentation.builders.PathSelectors;
    5. import springfox.documentation.builders.RequestHandlerSelectors;
    6. import springfox.documentation.service.ApiInfo;
    7. import springfox.documentation.service.Contact;
    8. import springfox.documentation.spi.DocumentationType;
    9. import springfox.documentation.spring.web.plugins.Docket;
    10. import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
    11. @Configuration
    12. @EnableSwagger2WebMvc
    13. public class SwaggerConfig {
    14. @Bean
    15. public Docket moduleDocket() { return docket("网站接口", "com.tarzan.fileprocessing.controller"); }
    16. private Docket docket(String groupName, String basePackages) {
    17. return new Docket(DocumentationType.SWAGGER_2)
    18. .groupName(groupName)
    19. .apiInfo(apiInfo())
    20. .select()
    21. .apis(RequestHandlerSelectors.basePackage(basePackages))
    22. .paths(PathSelectors.any())
    23. .build();
    24. }
    25. private ApiInfo apiInfo() {
    26. return new ApiInfoBuilder()
    27. .title("泰山文档处理 接口文档系统")
    28. .description("泰山文档处理 api接口文档系统")
    29. .license("Powered By Tarzan Liu")
    30. .licenseUrl("http://127.0.0.1")
    31. .termsOfServiceUrl("http://127.0.0.1")
    32. .contact(new Contact("tarzan Liu", "http://127.0.0.1", "1334512682@qq.com"))
    33. .version("V1.0.0")
    34. .build();
    35. }
    36. }

     IndexController.java包含一个简单的RESTful接口,代码示例如下:

    1. @Api(tags = "首页模块")
    2. @RestController
    3. public class IndexController {
    4. @ApiImplicitParam(name = "name",value = "姓名",required = true)
    5. @ApiOperation(value = "向客人问好")
    6. @GetMapping("/sayHi")
    7. public ResponseEntity sayHi(@RequestParam(value = "name")String name){
    8. return ResponseEntity.ok("Hi:"+name);
    9. }
    10. }

    此时,启动Spring Boot工程,在浏览器中访问:http://localhost:8080/doc.html

  • 相关阅读:
    mybatis开发部分核心代码
    Matlab绘图(2)通过代码进行局部放大绘图、多文件绘图
    Linux:补充一些常用命令
    论文阅读 Predicting Dynamic Embedding Trajectory in Temporal Interaction Networks
    集合-Collection
    Guava常用方法
    解析nc格式文件,GRB格式文件的依赖包edu.ucar.netcdfAll的api 学习
    FMC子卡设计资料:FMC210-1路1Gsps AD、1路2.5Gsps DA的FMC子卡
    sed的介绍及应用
    智慧城市总体规划与设计大纲
  • 原文地址:https://blog.csdn.net/weixin_40986713/article/details/126037945