SpringBoot 3.2.5 引入Swagger(OpenApi)

SpringBoot 3.2.5 引入Swagger(OpenApi)

springdoc-openapi 和 swagger 都可以用,用其中一个就行,不用两个都引入。

这里简单记录以下springdoc-openapi。

springdoc-openapi(Java库)有助于使用 SpringBoot 项目 自动生成 API 文档。

pom文件

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.5</version>
        <relativePath/>
    </parent>
    
 	<!-- 当前项目id -->
    <groupId>openApi</groupId>
    <artifactId>openApi</artifactId>
    <version>3.2.5</version>

    <name>openApi</name>
    <description>这里写你自己的项目描述</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>17</java.version>
    </properties>

    <dependencies>
        <!-- SpringBoot 提供的 web 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>3.2.5</version>
        </dependency>

        <!-- lombok 依赖 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
        </dependency>

        <!-- validation 参数校验依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
            <version>3.2.5</version>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
            <version>3.0.2</version>
        </dependency>

        <!-- swagger-ui依赖 https://springdoc.org/ -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.5.0</version>
        </dependency>
    </dependencies>
</project>

配置文件

import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
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;

//也有其他的扩展,有兴趣的可自行翻阅官网
@Configuration
public class SpringDocConfig {
	//个人认为,以下括号里的内容,都可乱写,写啥都行,只要是字符串就行
    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("OpenApi的Swagger")
                        .description("springdoc-openapi-starter-webmvc-ui")
                        .version("springdoc-openapi v2.5.0")
                        .license(new License()
                                .name("SprigBoot3.2.5")
                                //url,这里写的是SpringBoot的地址
                                .url("https://spring.io/projects/spring-boot"))
                ).externalDocs(new ExternalDocumentation()
                        .description("springdoc-openapi v2.5.0")
                        //url,写的是springdoc-openapi的地址
                        .url("https://springdoc.org/#google_vignette"));
    }
}

启动类

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@Slf4j
@SpringBootApplication
public class BigEventApplication implements CommandLineRunner {
    public static void main(String[] args) {
        SpringApplication.run(BigEventApplication.class, args);
    }

    @Override
    public void run(String... args) {
    	//端口号默认8080
        log.info("Tomcat在端口 " + 8080 + " (http)上启动:\n");
        
        String hostname = "localhost";
        String http = "http://";
        
        log.info("Api文档 浏览器访问地址如下:");
        log.info(http + hostname + ":" + 8080 + "/swagger-ui/index.html\n");
        
        log.info("ApiFox的 URL方式 导入路径为:");
        log.info(http + hostname + ":" + 8080 + "/v3/api-docs\n");
    }
}

Controller 层

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Validated
@RestController
@RequiredArgsConstructor
@Tag(name = "Xxx名字", description = "这里可以多写几个字,用来描述xxx,描述的详细一点")
@RequestMapping("/路径")
public class XxxController {

    private final XxxService service;
    
    @Operation(summary = "删除", description = "根据 id 删除")
    @DeleteMapping("/delete/{id}")
    public Result<String> clean(@NotBlank(message = "id 不可为空") @PathVariable String id) {
        boolean b = service.removeById(id);
        return b ? Result.success("删除成功") : Result.error("删除失败");
    }
}

启动成功后,可以直接从控制台点击这俩访问地址
http://localhost:8080/swagger-ui/index.html
http://localhost:8080/v3/api-docs
在这里插入图片描述

ApiFox

我用的接口测试工具是Apifox
把导入地址复制进去,就可以测试接口了
在这里插入图片描述

题外话
  • 你没钱,别人对你的态度,基本都是真诚的:说教、训斥、排挤……都是真的,因为他们找到了存在感。
  • 你有钱,别人对你的态度 就不一定是真的了,所谓的夸赞,可能是虚情假意,因为 你比他们强,他们嫉妒你。
### Spring Boot 3.2.5 整合 MyBatis Plus 配置教程 #### 添加依赖项 为了使项目能够使用 MyBatis Plus,在 `pom.xml` 文件中添加如下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3</version> </dependency> <!-- 如果需要操作数据库 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> ``` 这些依赖会引入 MyBatis Plus 的核心功能以及 MySQL 数据库连接器[^1]。 #### 应用程序属性配置 编辑项目的 `application.properties` 或者 `application.yml` 来设置数据源和其他必要的参数。对于 YAML 格式的文件,可以这样写: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath*:mapper/*Mapper.xml type-aliases-package: com.example.demo.entity ``` 这里定义了数据库 URL、用户名、密码以及其他一些选项来指定映射 XML 和实体类的位置[^2]。 #### 创建 Mapper 接口 创建一个接口继承自 BaseMapper 并指明泛型为对应的 Entity 类型即可实现基本 CRUD 操作而无需编写任何 SQL 语句。例如: ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper extends BaseMapper<UserEntity> { } ``` 此代码片段展示了怎样通过简单的声明方式获得完整的持久层支持[^3]。 #### 启动应用程序并测试 完成上述步骤之后就可以启动应用来进行验证了。确保所有的组件都已正确定义并且可以通过单元测试或其他手段确认其工作正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值