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方法,也能實現這種效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM