springmvc 返回结果的转换
RequestMappingHandlerAdapter
ServletInvocableHandlerMethod:invokeAndHandle
RequestResponseBodyMethodProcessor:writeWithMessageConverters
AbstractMessageConverterMethodProcessor:writeWithMessageConverters
MappingJackson2HttpMessageConverter:write
com.fasterxml.jackson.databind.ObjectMapper
com.fasterxml.jackson.core.json.UTF8JsonGenerator
DefaultSerializerProvider:serializeValue
最终由JsonSerializer来解析,选用那个JsonSerializer根据你传的对象
JSONObject MapSerialzer
对象 BeanSerializer
枚举类型的转换 这样的话才能调用枚举的toString方法
RequestMappingHandlerAdapter
ServletInvocableHandlerMethod:invokeAndHandle
RequestResponseBodyMethodProcessor:writeWithMessageConverters
AbstractMessageConverterMethodProcessor:writeWithMessageConverters
MappingJackson2HttpMessageConverter:write
com.fasterxml.jackson.databind.ObjectMapper
com.fasterxml.jackson.core.json.UTF8JsonGenerator
DefaultSerializerProvider:serializeValue
最终由JsonSerializer来解析,选用那个JsonSerializer根据你传的对象
JSONObject MapSerialzer
对象 BeanSerializer
枚举类型的转换 这样的话才能调用枚举的toString方法
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
super.extendMessageConverters(converters);
for (HttpMessageConverter<?> httpMessageConverter : converters) {
if (httpMessageConverter instanceof MappingJackson2HttpMessageConverter) {
MappingJackson2HttpMessageConverter convert = (MappingJackson2HttpMessageConverter) httpMessageConverter;
ObjectMapper objectMapper = convert.getObjectMapper();
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
objectMapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
// SerializationConfig serializationConfig = objectMapper.getSerializationConfig();
// serializationConfig.getSerializationFeatures();
}
}
}