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

编写文档

相关推荐
念念清晰38 分钟前
000-OpenJDK17 源码构建:MacOS环境(M芯片)
java·后端
来福猿1 小时前
SpringCloud Config 源码分析:配置拉取、刷新与多环境管理
后端·spring·spring cloud
IT_陈寒3 小时前
React组件莫名重渲染?你可能忘了这个小细节
前端·人工智能·后端
用户9888321871744 小时前
给 .NET 网络调用设定“预算”:用 CancellationTokenSource.CancelAfter 处理超时取消
后端
清风儿3294 小时前
一块不会说话的电表,把我们折腾了半个月
后端
预知同行4 小时前
深入解析 MoE 混合专家模型:从 Router 到 All-to-All 的架构全景与生产实践
后端·架构
upala4 小时前
【仓颉语言入门 · 第二篇 第 8 课】
后端
weiwin1234 小时前
MAF 入门(8):多模态实战——让 Agent 看懂图片、处理混合内容
人工智能·后端
弈栈录5 小时前
流式对话接口设计:SSE、WebSocket 与断线重连
后端
Java内核笔记5 小时前
Spring AI 生产级 Chat 接口:6 个开关、13 个坑,其中 2 个开关根本没生效
java·人工智能·后端