昨晚在实体类中新加了三个之后就下班了,今天回来用swagger的时候发现swagger中对于这个实体类中的新增属性没显示,纳闷了,我寻思这也不能扒拉出锅了啊,回去看一下属性上的注解,如图
这也没错啊,排除了这里,接着看一下属性相关的get、set方法,发现昨晚回去的时候实体类中没写这个属性的get、set方法,添加get、set方法后swagger中成功加载到新增属性。
看来是根据get、set方法来加载这个属性了。
有个疑问,swagger是根据get、set中的哪个方法来加载属性的呢?
试了一下只留get方法或者set方法,发现swagger竟然都能加载到属性,那么确定了属性是根据对应的get、set方法是否存在获取的。
那属性名又是由什么决定的呢?
如图所示
情况一:
代码中,当get、set后的方法名相同时,
swagger中的属性名与get、set方法名后缀相同,将后缀中大写的首字母转小写
情况二:
代码中,当get、set后缀的方法名不同时,
swagger中竟然根据不同的get、set方法名出现了两个属性名?! 也就是说get与set方法对于swagger获取属性来说并没有优先级,如果不同名,swagger就认为有两个属性。
总结一下,swagger中的属性名根据对应实体类中的get、set方法名,如果get、set后缀不同名,swagger就认为有两个属性。
swagger中没有新加的实体类属性(新加的属性在swagger中不显示)问题
最新推荐文章于 2024-05-23 10:40:35 发布