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

编写文档

相关推荐
CQU_JIAKE1 小时前
11.7[高体】
java·后端·spring
Csvn2 小时前
认识 Nginx
后端·nginx
红尘散仙2 小时前
谁说终端只能敲键盘?我用 Rust 给小说阅读器加上了鼠标
前端·后端·rust
特立独行的猫A3 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
陈随易3 小时前
C++26 草案被否,二十八年来头一回
前端·后端·程序员
金銀銅鐵4 小时前
同一个 Hello World,Kotlin 和 Java 在字节码层面差在哪
jvm·后端·kotlin
IT_陈寒7 小时前
Redis内存暴涨,没想到是AOF重写捣的鬼
前端·人工智能·后端
ikoala7 小时前
让 Codex 自己查账:一个省 token 的小技巧
前端·后端·ai编程
wo_jack10 小时前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
量化分析码农12 小时前
【Python量化波动率实战 02】波动率会传染:EWMA 指数加权给近期行情更大话语权
后端