@ApiModel添加实体类不生效

网友投稿 342 2022-06-06


@ApiModel添加实体类不生效 

swagger, @ApiModel, Models, 实体类无法加载

在使用swagger时, 以为加上@ApiModel在实体类上就可以在swagger-ui.html的Models里面显示.

但是我创建了很多实体类, 但怎么也只显示了一个???

Models中无论如何只有User这一个实体类。 后来发现不是加上@ApiModel就可以加入Models中的,必须要在controller层中关联这个实体类。由于我把所有实体类创建好后只测试了User,其它的实体类都没关联,所以swagger-ui.html中的Models没有实体类的显示。

Models实体类无法显示

Swagger环境为:

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

编写实体类 User:

@ApiModel("用户实体类")
public class User {
    @ApiModelProperty("用户名")
    private String username;
    @ApiModelProperty("密码")
    private String password;
}

在controller中使用该实体类:

@PostMapping("/user")
public User user() {
    return new User();
}

却发现Models中根本没有User类的信息!

解决办法

给实体类添加 get 和 set 方法!

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel("用户实体类")
public class User {
    @ApiModelProperty("用户名")
    private String username;
    @ApiModelProperty("密码")
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }    
}

成功显示!

由此可知,以后写实体类的时候,写全!

构造方法,get、set方法,toString方法全都加上!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Swagger @API tags中含有中文异常
下一篇:SpringBoot @ApiModelProperty注解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~