spring boot处理请求返回值的格式(自定义消息转换器)

springboot 将对象转化成json对象返回给前端,是通过多个消息转换器配合完成的

但是有些时候,默认的转化格式未必符合我们的要求,这个时候就需要进行自定义消息转换器

只需要在@Configuration的类中添加消息转化器的@bean加入到Spring容器,就会在spring启动时被Spring Boot自动加入到容器中。

框架在对消息进行转换时就不会使用默认的转换器,而是使用咱们提供的bean进行处理

需要注意的是,一个转换器只有一个bean会起作用,当转换器重复加到容器中时,只有第一个会起作用

 

@Bean
    public MappingJackson2HttpMessageConverter longToStringConverter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        ObjectMapper mapper = new ObjectMapper();
        //Long 转String
        SimpleModule simpleModule = new SimpleModule();
        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
        mapper.registerModule(simpleModule);
        //Date格式
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));    
        
        converter.setObjectMapper(mapper);
        return converter;
    }

 

这是一个示例, 会将对象中的Long类型转换成String返回,同时返回规定格式的日期

如果要对返回消息的编码格式做处理,就需要用到另外一个转换器

 

如果某个字段不想返回,再对象属性上面加上@JsonIgnore即可

 

 

除了这种方式,还可以在继承WebMvcConfigurerAdapter的类中重写(覆盖)configureMessageConverters方法,也能实现这种效果

 

转载于:https://www.cnblogs.com/self-studyRen/p/11133847.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
不完全正确。在Spring Boot定制RabbitMQ消息转换器的配置类消息转换器返回值可以是任何实现了MessageConverter接口的类,不一定是MessageConverter类型。 在Spring Boot,我们可以通过自定义配置类来配置RabbitMQ消息转换器。在配置类,我们可以使用@Bean注解来创建一个消息转换器组,并且可以添加多个消息转换器。例如,下面是一个使用Jackson2JsonMessageConverter和StringMessageConverter两个消息转换器的配置类示例: ``` @Configuration public class RabbitMQConfig { @Bean public MessageConverter messageConverter() { return new Jackson2JsonMessageConverter(); } @Bean public MessageConverter stringMessageConverter() { return new StringMessageConverter(); } @Bean public MessageConverterGroup messageConverterGroup() { return new DefaultMessageConverterGroup(messageConverter(), stringMessageConverter()); } } ``` 在这个配置类,我们创建了两个消息转换器,分别是Jackson2JsonMessageConverter和StringMessageConverter,并且使用@Bean注解将它们注册为Spring容器的Bean。然后,我们创建一个消息转换器组,并将这两个消息转换器添加到消息转换器。 需要注意的是,我们在创建消息转换器组时,返回值类型必须是MessageConverterGroup类型,而不是MessageConverter类型。这是因为消息转换器组是由多个消息转换器组成的集合,而不是单个消息转换器。因此,返回值类型必须是MessageConverterGroup类型,以便能够将多个消息转换器组合成一个消息转换器组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值