From 0a49707dd4dbacf83935b8b00af27cdf29c02b10 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期二, 23 四月 2024 15:59:38 +0800 Subject: [PATCH] 2024-4-23 消息通知后端开放 --- framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-) diff --git a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java index 329eeed..50d28d4 100644 --- a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java +++ b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java @@ -1,13 +1,29 @@ package com.yuanchu.mom.config; import cn.hutool.log.Log; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; @Configuration public class OpenFifer extends WebMvcConfigurationSupport { @@ -30,6 +46,9 @@ @Value("${wordUrl}") private String wordUrl; + @Value("${spring.jackson.date-format}") + private String pattern; + public void addResourceHandlers(ResourceHandlerRegistry registry) { //閰嶇疆鎷︽埅鍣ㄨ闂潤鎬佽祫婧� registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/"); @@ -49,4 +68,29 @@ registry.addInterceptor(logConfig).addPathPatterns("/**"); super.addInterceptors(registry); } + + // 鍏ㄥ眬鏍煎紡鍖栧鐞� + @Override + protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) { + // 杩斿洖缁欏墠绔幓闄ull + Jackson2ObjectMapperBuilder json = Jackson2ObjectMapperBuilder.json(); + MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); + + //localDateTime鏍煎紡鍖� + JavaTimeModule module = new JavaTimeModule(); + LocalDateTimeDeserializer dateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(pattern)); + LocalDateTimeSerializer dateTimeSerializer = new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern)); + module.addDeserializer(LocalDateTime.class, dateTimeDeserializer); + module.addSerializer(LocalDateTime.class, dateTimeSerializer); + ObjectMapper objectMapper = json.modules(module) + .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build(); + + //date鏃堕棿鏍煎紡鍖� + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.setDateFormat(new SimpleDateFormat(pattern)); + + // 璁剧疆鏍煎紡鍖栧唴瀹� + converter.setObjectMapper(objectMapper); + converters.add(0, converter); + } } -- Gitblit v1.9.3