package jnpf.config;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.MapperFeature;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Primary;
|
import org.springframework.http.converter.HttpMessageConverter;
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
import java.text.SimpleDateFormat;
|
import java.util.List;
|
import java.util.TimeZone;
|
|
@Configuration
|
public class JacksonConfig implements WebMvcConfigurer {
|
|
@Bean
|
@Primary
|
public ObjectMapper objectMapper() {
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
// 原有配置
|
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
|
objectMapper.configure(MapperFeature.USE_GETTERS_AS_SETTERS, true);
|
|
// 新增:设置全局日期格式和时区
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8")); // 设置时区,避免时间偏移
|
objectMapper.setDateFormat(dateFormat);
|
|
return objectMapper;
|
}
|
|
@Override
|
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
|
for (HttpMessageConverter<?> converter : converters) {
|
if (converter instanceof MappingJackson2HttpMessageConverter) {
|
((MappingJackson2HttpMessageConverter) converter).setObjectMapper(objectMapper());
|
}
|
}
|
}
|
}
|