SpringBoot2接入Knife4j

接入过程

1.引入依赖

pom.xml

xml 复制代码
<!-- Knife4j -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

2.编写配置

src/main/java/com/example/netdisk/config/Knife4jConfig.java

java 复制代码
package com.example.netdisk.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
public class Knife4jConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.netdisk.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("NetDisk API")
                .description("网盘系统接口文档")
                .version("1.0.0")
                .build();
    }
}

3.放行请求

src/main/java/com/example/netdisk/security/config/SecurityConfig.java

java 复制代码
.authorizeRequests()// 开始配置URL授权(新版可能用 authorizeHttpRequests)
.antMatchers(HttpMethod.OPTIONS, "/**").permitAll()// 预检请求放行
.antMatchers("/auth/**").permitAll()// 登录接口所有人都可访问
.antMatchers(
        "/swagger-ui.html",
        "/swagger-ui/**",
        "/webjars/**",
        "/v2/api-docs",
        "/v3/api-docs",
        "/swagger-resources/**",
        "/doc.html"
).permitAll()               //swagger路径放行
.anyRequest().authenticated()// 其他所有请求都需要认证

4.处理兼容

运行后报错:Failed to start bean 'documentationPluginsBootstrapper'

这属于 Springfox 和 Spring Boot 2.6 的兼容问题,需要额外配置:

src/main/resources/application.yml

yml 复制代码
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

运行项目后访问:http://localhost:8080/doc.html

编写文档

相关推荐
wei_shuo1 小时前
数据迁移工具实战:KDMS自动化评估与量化决策体系解析
后端
Lightpwd2 小时前
Spring Boot 多数据源落地:AbstractRoutingDataSource + 注解切面(附源码)
数据库·后端
乱码三千2 小时前
使用ComfyUI+MinMax-H3音视频模型生成视频
前端·后端·github
Shinomiya2 小时前
最近在学进程调度和环境变量,记点心得
后端
分支预测失败2 小时前
RISC-V 核间中断 IPI 实战:从 MSIP 寄存器到 IMSIC 消息投递
linux·后端
用户850869276152 小时前
Rust系统编程在任务调度中的踩坑与优化之路
后端
LiaCode3 小时前
别让 AI 把仓库写成“代码平行宇宙”:从 Deslop 看生成前查重
前端·后端·github
啵啵啵鱼3 小时前
DS-顺序表
java·数据结构·笔记·后端·链表·obsidian
回家吃饭去吧3 小时前
AI Agent Function Calling / Tool Use 深度解析
后端