parent
cdf944c7bb
commit
ea193c5a2a
@ -0,0 +1,50 @@ |
||||
package edu.ncst.award.config; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude; |
||||
import com.fasterxml.jackson.databind.SerializationFeature; |
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; |
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; |
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; |
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; |
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; |
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; |
||||
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.core.annotation.Order; |
||||
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; |
||||
|
||||
import java.time.LocalDate; |
||||
import java.time.LocalDateTime; |
||||
import java.time.LocalTime; |
||||
import java.time.format.DateTimeFormatter; |
||||
|
||||
@Configuration |
||||
public class JacksonConfig { |
||||
|
||||
@Bean |
||||
@Order(Ordered.HIGHEST_PRECEDENCE) |
||||
public Jackson2ObjectMapperBuilderCustomizer customJackson() { |
||||
return new Jackson2ObjectMapperBuilderCustomizer() { |
||||
@Override |
||||
public void customize(Jackson2ObjectMapperBuilder builder) { |
||||
builder.serializerByType(LocalDateTime.class, |
||||
new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
||||
builder.serializerByType(LocalDate.class, |
||||
new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); |
||||
builder.serializerByType(LocalTime.class, |
||||
new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss"))); |
||||
builder.deserializerByType(LocalDateTime.class, |
||||
new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
||||
builder.deserializerByType(LocalDate.class, |
||||
new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); |
||||
builder.deserializerByType(LocalTime.class, |
||||
new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss"))); |
||||
builder.serializationInclusion(JsonInclude.Include.NON_NULL); |
||||
builder.failOnUnknownProperties(false); |
||||
builder.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); |
||||
} |
||||
}; |
||||
} |
||||
} |
||||
@ -1,47 +0,0 @@ |
||||
|
||||
package edu.ncst.award.config; |
||||
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature; |
||||
import com.alibaba.fastjson.support.config.FastJsonConfig; |
||||
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.http.MediaType; |
||||
import org.springframework.http.converter.HttpMessageConverter; |
||||
|
||||
import java.nio.charset.Charset; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
@Configuration |
||||
public class JsonConfig { |
||||
|
||||
|
||||
@Bean |
||||
public HttpMessageConverter configureMessageConverters() { |
||||
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); |
||||
FastJsonConfig config = new FastJsonConfig(); |
||||
config.setSerializerFeatures( |
||||
// 保留map空的字段
|
||||
SerializerFeature.WriteMapNullValue, |
||||
// 将String类型的null转成""
|
||||
SerializerFeature.WriteNullStringAsEmpty, |
||||
// 将Number类型的null转成0
|
||||
SerializerFeature.WriteNullNumberAsZero, |
||||
// 将List类型的null转成[]
|
||||
SerializerFeature.WriteNullListAsEmpty, |
||||
// 将Boolean类型的null转成false
|
||||
SerializerFeature.WriteNullBooleanAsFalse, |
||||
// 避免循环引用
|
||||
SerializerFeature.DisableCircularReferenceDetect); |
||||
|
||||
converter.setFastJsonConfig(config); |
||||
converter.setDefaultCharset(Charset.forName("UTF-8")); |
||||
List<MediaType> mediaTypeList = new ArrayList<>(); |
||||
// 解决中文乱码问题,相当于在Controller上的@RequestMapping中加了个属性produces = "application/json"
|
||||
mediaTypeList.add(MediaType.APPLICATION_JSON); |
||||
converter.setSupportedMediaTypes(mediaTypeList); |
||||
return converter; |
||||
} |
||||
} |
||||
|
||||
@ -0,0 +1,2 @@ |
||||
package edu.ncst.award.controller;public class ProjectController { |
||||
} |
||||
@ -0,0 +1,2 @@ |
||||
package edu.ncst.award.mapper.system;public interface ProjectMapper { |
||||
} |
||||
@ -0,0 +1,2 @@ |
||||
package edu.ncst.award.model.project;public class Project { |
||||
} |
||||
@ -0,0 +1,2 @@ |
||||
package edu.ncst.award.service.impl;public interface IProjectService { |
||||
} |
||||
@ -0,0 +1,2 @@ |
||||
package edu.ncst.award.service.impl.project;public class ProjectServiceImpl { |
||||
} |
||||
Loading…
Reference in new issue