Swagger 属性名 FastJson支持


声明:本文转载自https://my.oschina.net/wallxue/blog/1559736,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

在Swagger 里面默认用的是Jackson 序列化

对于我们属性全是用的FastJson的来说的话 很痛苦

参数名全成了默认属性名

Swagger提供的默认注解 ApiModelProperty 的name属性也是完全不起作用的

如果项目没有配置Jackson的话 swagger是运行不起来的

贴配置:

@Configuration @EnableSwagger2 public class Swagger2 {      @Autowired     private ApplicationContext applicationContext;       @PostConstruct     public void setObjectMapper() {         ObjectMapper objectMapper = new ObjectMapper();         SimpleModule module = new SimpleModule();         objectMapper.registerModule(module);          objectMapper.setAnnotationIntrospector(new JacksonAnnotationIntrospector() {              @Override             public boolean isAnnotationBundle(Annotation ann) {                 if (ann.annotationType() == JSONField.class) {                     return true;                 }                 return super.isAnnotationBundle(ann);             }              @Override             public PropertyName findNameForSerialization(Annotated a) {                 PropertyName nameForSerialization = super.findNameForSerialization(a);                 if (nameForSerialization == null || nameForSerialization == PropertyName.USE_DEFAULT) {                     JSONField jsonField = _findAnnotation(a, JSONField.class);                     if (jsonField != null) {                         return PropertyName.construct(jsonField.name());                     }                 }                 return nameForSerialization;             }              @Override             public PropertyName findNameForDeserialization(Annotated a) {                 PropertyName nameForDeserialization = super.findNameForDeserialization(a);                 if (nameForDeserialization == null || nameForDeserialization == PropertyName.USE_DEFAULT) {                     JSONField jsonField = _findAnnotation(a, JSONField.class);                     if (jsonField != null) {                         return PropertyName.construct(jsonField.name());                     }                 }                 return nameForDeserialization;             }         });          ObjectMapperConfigured objectMapperConfigured = new ObjectMapperConfigured(applicationContext, objectMapper);         applicationContext.publishEvent(objectMapperConfigured);     }      @Bean     public Docket createRestApi() {         return new Docket(DocumentationType.SWAGGER_2)                 .apiInfo(apiInfo())                 .select()                 .apis(RequestHandlerSelectors.basePackage("com."))                 .paths(PathSelectors.any())                 .build();     }      private ApiInfo apiInfo() {         return new ApiInfoBuilder()                 .title("在线接口文档")                 .contact("good_xw@qq.com")                 .version("3.2")                 .build();     }  }

Jackson配置包含

JacksonAnnotationIntrospector

主要是用来对注解JSONFiled的支持

加上后的效果

本文发表于2017年11月02日 14:34
(c)注:本文转载自https://my.oschina.net/wallxue/blog/1559736,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 3098 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1