@ApiModel注解升级成@Schema注解

@ApiModel@ApiModelPropertySwagger 2 (即 springfox-swagger)中的注解。

在升级到 Springfox 3.0.0 或迁移到 SpringDoc OpenAPIspringdoc-openapi)时,这些注解发生了变化:

✅ 升级后的注解(使用 SpringDoc OpenAPI / OpenAPI 3)

Swagger 2 (Springfox) SpringDoc OpenAPI (OpenAPI 3)
@ApiModel @Schema
@ApiModelProperty @Schema

📌 用法对比

Swagger 2(旧版)
java 复制代码
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel(description = "用户信息")
public class User {
    @ApiModelProperty(value = "用户ID", example = "1")
    private Long id;

    @ApiModelProperty(value = "用户名", required = true)
    private String username;
}
SpringDoc OpenAPI(新版)
java 复制代码
import io.swagger.v3.oas.annotations.media.Schema;

@Schema(description = "用户信息")
public class User {
    @Schema(description = "用户ID", example = "1")
    private Long id;

    @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED)
    private String username;
}

🔁 迁移说明

  1. 替换依赖 : 如果从 springfox 迁移到 springdoc,需要移除 springfox-swagger2springfox-swagger-ui

    xml 复制代码
    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
        <version>2.8.13</version>
    </dependency>
  2. 替换注解

    • 所有 @ApiModel@Schema
    • 所有 @ApiModelProperty@Schema
    • required = truerequiredMode = Schema.RequiredMode.REQUIRED
  3. 访问地址

    • Swagger UI 地址从 /swagger-ui.html 变为 /swagger-ui.html(新版路径可能略有不同,通常是 /swagger-ui/index.html

✅ 总结

目的 旧注解(Swagger 2) 新注解(OpenAPI 3 / SpringDoc)
类说明 @ApiModel @Schema
字段说明 @ApiModelProperty @Schema

所以,@ApiModel@ApiModelProperty 的升级版本注解都是 @Schema

相关推荐
叶小鸡16 小时前
Java 篇-项目实战-天机学堂(从0到1)-day9
java·开发语言
@#¥&~是乱码鱼啦16 小时前
Spring分层架构:Controller、Service、Mapper数据链路,IOC的真实工作意义
java·spring·架构
xieliyu.16 小时前
Java手搓数据结构:从零模拟实现无头双向非循环链表
java·数据结构·链表
薪火铺子17 小时前
SpringMVC请求处理流程源码解析(第3篇):视图渲染与异常处理
java·后端·spring
逻辑驱动的ken17 小时前
Java高频面试场景题19
java·开发语言·面试·职场和发展·求职招聘
leoufung18 小时前
LeetCode 42:接雨水 —— 从“矩形法”到双指针的完整思考过程
java·算法·leetcode
小碗羊肉18 小时前
【MySQL | 第十一篇】InnoDB引擎
java·数据库·mysql
Dylan的码园18 小时前
Maven基础架构与整体认识
java·junit·maven
弹不出的5h3ll18 小时前
Ghost Bits:高位截断如何让 Java WAF 形同虚设
java·开发语言
庞轩px18 小时前
第七篇:注解与APT深度解析——从@Override到Lombok的底层原理
java·注解·编译·lombok