You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swagger代码生成:String的maxLength未生成模型类校验注解

解决Swagger maxLength约束生成@Size校验注解的问题

Swagger Codegen默认不会自动生成JSR-380(Jakarta Validation)的校验注解,要让maxLength转换为@Size注解,需要在Maven插件配置中开启Bean Validation支持,具体步骤如下:

  1. 修改Maven插件配置
    在swagger-codegen-maven-plugin的configuration里添加enableBeanValidation参数并设为true,如果项目使用Jakarta Validation(如Spring Boot 3+),还需指定validationAnnotations=jakarta。示例配置:
<plugin>
    <groupId>io.swagger.codegen.v3</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>3.0.33</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/swagger.yaml</inputSpec>
                <language>java</language>
                <configOptions>
                    <!-- 开启Bean Validation注解生成 -->
                    <enableBeanValidation>true</enableBeanValidation>
                    <!-- Spring Boot 3+ 需开启此项,生成jakarta.validation包下的注解 -->
                    <!-- <validationAnnotations>jakarta</validationAnnotations> -->
                    <modelPackage>com.yourcompany.model</modelPackage>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>
  1. 验证依赖配置
    确保项目已引入校验相关依赖:
  • 若使用javax.validation(Spring Boot 2及以下):
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
</dependency>
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>
  • 若使用jakarta.validation(Spring Boot 3及以上):
<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
</dependency>
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>

配置完成后重新执行代码生成,Address类的city属性就会自动带上@Size(max = 60)注解,同时Swagger中的其他约束(如minLength、pattern)也会对应生成相应的校验注解。

内容的提问来源于stack exchange,提问作者Megan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:22:40