SpringBoot4用Swagger

pom文件

java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- Spring Boot 父工程 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>4.0.0</version>
        <relativePath/>
    </parent>

    <!-- 项目基本信息 -->
    <groupId>com.kunbu</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Spring Boot + MyBatis-Plus 示例项目</description>

    <!-- 全局属性配置 -->
    <properties>
        <java.version>17</java.version>
        <!-- 统一 MyBatis-Plus 版本 -->
        <mybatis-plus.version>3.5.15</mybatis-plus.version>
        <!-- SpringDoc 版本(替代 Swagger2) -->
        <springdoc.version>2.6.0</springdoc.version>
    </properties>

    <dependencies>
        <!-- Spring Boot Web 核心依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- MyBatis-Plus 核心依赖(已包含 MyBatis,无需重复引入) -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot4-starter</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>

        <!-- MySQL 驱动 -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- Lombok 简化代码 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- 测试依赖(整合 Spring Boot 测试 + MyBatis-Plus 测试) -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot4-starter-test</artifactId>
            <version>${mybatis-plus.version}</version>
            <scope>test</scope>
        </dependency>

        <!-- SpringDoc OpenAPI(替代 Swagger2,适配 Spring Boot 4) -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>${springdoc.version}</version>
        </dependency>
        <!-- 新增:Swagger 2 注解依赖(让 @Api、@ApiOperation 等注解生效) -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.6.14</version>
            <scope>compile</scope>
        </dependency>

        <!-- SpringDoc OpenAPI 核心依赖(已存在) -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.6.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Maven 编译插件(指定 Java 版本,适配 Lombok) -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

            <!-- Spring Boot 打包插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

配置文件

java 复制代码
```java
package com.kun.config;

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.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * SpringDoc OpenAPI 配置类(适配 Spring Boot 4.0.0)
 * 修正了 OpenAPI 无 description 方法的错误
 */
@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI customOpenAPI() {
        // 1. 配置作者信息
        Contact contact = new Contact()
                .name("我是作者姓名")    // 作者姓名
                .url("https://blog.csdn.net/")  // 作者网址
                .email("123456789@163.com"); // 作者邮箱

        // 2. 配置文档核心信息(包含描述、标题、版本等)
        Info info = new Info()
                .title("XX项目API")  // API 主标题
                .description("XX项目SpringDoc OpenAPI接口文档管理")  // 文档描述(核心:把描述放在 Info 里)
                .version("1.0")  // API 版本
                .contact(contact)  // 关联作者信息
                .license(new License()  // 许可证信息
                        .name("SpringDoc使用教程")
                        .url("https://blog.csdn.net"));

        // 3. 构建 OpenAPI 实例(只保留 info 配置,移除错误的 description 调用)
        return new OpenAPI()
                .info(info); // 仅需关联 Info 对象即可
    }
}
复制代码
另外yml配置

```java
spring:
  datasource:
    url: 
    username: root
    password: 
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
  mapper-locations: classpath:mapper/**/*.xml  # Mapper XML 文件路径
  type-aliases-package: com.自己的包.domain.po  # 实体类别名包
  configuration:
    map-underscore-to-camel-case: true  # 下划线转驼峰

启动类

java 复制代码
@SpringBootApplication
@MapperScan("com.kun.mapper") // 扫描 Mapper 接口包
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

另外接口用mybatisplus自动生成不会的去看黑马的课mybatisplus

相关推荐
geekmice2 小时前
实现一个功能:springboot项目启动将controller地址拼接打印到txt文件
java·spring boot·后端
老华带你飞2 小时前
旅游|基于Java旅游信息系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·旅游
小石头 100863 小时前
【JavaEE】进程和线程的区别
java·java-ee
oioihoii3 小时前
C++对象生命周期与析构顺序深度解析
java·开发语言·c++
BBB努力学习程序设计3 小时前
Java枚举(Enum):定义固定值的"类型安全"利器
java
It's now3 小时前
BeanRegistrar 的企业级应用场景及最佳实践
java·开发语言·spring
毕设源码-赖学姐4 小时前
【开题答辩全过程】以 基于Java的小区物业管理系统APP的设计与实现为例,包含答辩的问题和答案
java·开发语言
会编程的林俊杰4 小时前
Mapper解析
java·mybatis