已为Model添加@ApiModelProperty,但Swagger文档未显示字段,如何解决?
解决Swagger文档不显示DictServiceGroupView字段的问题
以下是几个关键修复步骤:
1. 调整字段访问权限或确保Getter可见性
Swagger默认只会识别公共(public)字段或公共Getter方法。你的代码中字段是包私有(无访问修饰符),即使加了@Getter,若Lombok生成的Getter权限不匹配,Swagger也无法扫描到。
推荐修改方案:将字段改为private,依赖Lombok自动生成public级别的Getter/Setter(@Getter/@Setter注解默认生成public方法),修改后的代码如下:
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import java.util.UUID; @ApiModel(description = "Краткое описание сервиса для его выбора в dropdown") @Getter @Setter public class DictServiceGroupView { @ApiModelProperty(notes = "Название сервиса") private String name; @ApiModelProperty(notes = "Идентификатор сервиса") private UUID id; }
若不想修改字段修饰符,可显式指定Lombok生成public级别的Getter:
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; import java.util.UUID; @ApiModel(description = "Краткое описание сервиса для его выбора в dropdown") @Getter(AccessLevel.PUBLIC) @Setter(AccessLevel.PUBLIC) public class DictServiceGroupView { @ApiModelProperty(notes = "Название сервиса") String name; @ApiModelProperty(notes = "Идентификатор сервиса") UUID id; }
2. 确认Lombok注解生效
- 检查项目依赖中是否正确引入Lombok,Maven依赖示例:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> - 确保IDE已启用注解处理器(如IntelliJ IDEA需在
Settings > Build, Execution, Deployment > Compiler > Annotation Processors中勾选Enable annotation processing)。
3. 检查Swagger配置扫描范围
确保Swagger配置类中,Docket实例已指定扫描包含DictServiceGroupView的包路径,示例:
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("你的模型所在包路径")) .paths(PathSelectors.any()) .build(); } }
4. 验证Swagger版本兼容性
若使用Swagger 1.x版本,对Lombok的支持有限,建议升级到Swagger 2.x版本,确保与Lombok版本兼容。
内容的提问来源于stack exchange,提问作者Eljah
相关产品推荐
相关产品推荐

