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