springBoot中重寫默認的消息轉換器

springmvc默認是使用jackson作爲消息轉換器的實現,當我們想對一些類型做轉換的時候,有幾種方式

1.在默認消息轉換器沒有被重寫的情況下,使用jackson的註解(只有註解的字段會被轉換)

2.重寫默認的消息轉換器實現對Long類型的字段轉換爲String類型(全部統一轉換)

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
 
	@Override
	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
		converters.add(new ByteArrayHttpMessageConverter());
		converters.add(new StringHttpMessageConverter());
		converters.add(new ResourceHttpMessageConverter());
		converters.add(new AllEncompassingFormHttpMessageConverter());
		converters.add(new StringHttpMessageConverter());
		converters.add(jackson2HttpMessageConverter());
	}
 
	/**
	 * long類型轉String(解決瀏覽器Long類型精度丟失問題)
	 *
	 * @return 值
	 */
	@Bean
	public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
		MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
		ObjectMapper mapper = new ObjectMapper();
 
		// Long類型轉String類型
		SimpleModule simpleModule = new SimpleModule();
		simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
		mapper.registerModule(simpleModule);
		converter.setObjectMapper(mapper);
		return converter;
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章