温馨提示:
springBoot 版本 3.0+
knife4j 版本 4.1.0
添加依赖:knife4j包含了swagger,openapi3中的依赖,所以加这一个就行。
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
    <version>4.1.0</version>
</dependency>
<!--springBoot相关配置忽略-->yml文件中配置:
 
 #springdoc相关配置
springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: 'hyc'
      paths-to-match: '/**'
      packages-to-scan: com.hyc  #改成你自己的包名,一般到启动类的包名
#knife4j相关配置 可以不用改
knife4j:
  enable: true
  setting:
    language: zh_cn
    swagger-model-name: 实体类 
 
配置类,主要是配置接口文档的主页信息,也可以写在yml文件中,这里是采用的配置类
package com.hyc.config;
import cn.hutool.core.util.RandomUtil;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
/**
 * Swagger配置
 */
@Configuration
public class SwaggerConfig {
    /**
     * 根据@Tag 上的排序,写入x-order
     *
     * @return the global open api customizer
     */
    @Bean
    public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
        return openApi -> {
            if (openApi.getTags()!=null){
                openApi.getTags().forEach(tag -> {
                    Map<String,Object> map=new HashMap<>();
                    map.put("x-order", RandomUtil.randomInt(0,100));
                    tag.setExtensions(map);
                });
            }
            if(openApi.getPaths()!=null){
                openApi.addExtension("x-test123","333");
                openApi.getPaths().addExtension("x-abb",RandomUtil.randomInt(1,100));
            }
        };
    }
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("SpringCloud微服务系统API")
                        .version("1.0")
                        .contact(new Contact().name("hyc").url("www.baidu.com").email("XXXXX@163.com"))
                        .description( "SpringCloud微服务系统API")
                        .termsOfService("www.baidu.com")
                        .license(new License().name("Apache 2.0")
                                .url("www.baidu.com")));
    }
}
然后,就可以启动测试输入地址http://ip:port/doc.html

注解的基本使用可以看下这里:swagger3注解和swagger2的区别
这里主要提下请求参数为文件的时候怎么写

@Parameter(name = "image", description = "图片文件", required = true,schema =@Schema(type = "file"))在@Parameter参数注解里面加 schema = @Schema(type = "string", format = "binary")



















