mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	update 优化 jackson 自动配置 改为使用 BeanPostProcessor 匿名处理
This commit is contained in:
		| @@ -5,31 +5,45 @@ import cn.iocoder.yudao.framework.jackson.core.databind.LocalDateTimeSerializer; | ||||
| import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
| import com.fasterxml.jackson.databind.module.SimpleModule; | ||||
| import lombok.extern.slf4j.Slf4j; | ||||
| import org.springframework.beans.BeansException; | ||||
| import org.springframework.beans.factory.config.BeanPostProcessor; | ||||
| import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.Configuration; | ||||
|  | ||||
| import java.time.LocalDateTime; | ||||
|  | ||||
| @Slf4j | ||||
| @Configuration | ||||
| public class YudaoJacksonAutoConfiguration { | ||||
|  | ||||
|     @Bean | ||||
|     @SuppressWarnings("InstantiationOfUtilityClass") | ||||
|     public JsonUtils jsonUtils(ObjectMapper objectMapper) { | ||||
|         SimpleModule simpleModule = new SimpleModule(); | ||||
|         /* | ||||
|          * 1. 新增Long类型序列化规则,数值超过2^53-1,在JS会出现精度丢失问题,因此Long自动序列化为字符串类型 | ||||
|          * 2. 新增LocalDateTime序列化、反序列化规则 | ||||
|          */ | ||||
|         simpleModule | ||||
|     public BeanPostProcessor objectMapperBeanPostProcessor() { | ||||
|         return new BeanPostProcessor() { | ||||
|             @Override | ||||
|             public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { | ||||
|                 if (!(bean instanceof ObjectMapper)) { | ||||
|                     return bean; | ||||
|                 } | ||||
|                 ObjectMapper objectMapper = (ObjectMapper) bean; | ||||
|                 SimpleModule simpleModule = new SimpleModule(); | ||||
|                 /* | ||||
|                  * 1. 新增Long类型序列化规则,数值超过2^53-1,在JS会出现精度丢失问题,因此Long自动序列化为字符串类型 | ||||
|                  * 2. 新增LocalDateTime序列化、反序列化规则 | ||||
|                  */ | ||||
|                 simpleModule | ||||
| //                .addSerializer(Long.class, ToStringSerializer.instance) | ||||
| //                    .addSerializer(Long.TYPE, ToStringSerializer.instance) | ||||
|                     .addSerializer(LocalDateTime.class, LocalDateTimeSerializer.INSTANCE) | ||||
|                     .addDeserializer(LocalDateTime.class, LocalDateTimeDeserializer.INSTANCE); | ||||
|                         .addSerializer(LocalDateTime.class, LocalDateTimeSerializer.INSTANCE) | ||||
|                         .addDeserializer(LocalDateTime.class, LocalDateTimeDeserializer.INSTANCE); | ||||
|  | ||||
|         objectMapper.registerModules(simpleModule); | ||||
|                 objectMapper.registerModules(simpleModule); | ||||
|  | ||||
|         JsonUtils.init(objectMapper); | ||||
|         return new JsonUtils(); | ||||
|                 JsonUtils.init(objectMapper); | ||||
|                 log.info("初始化 jackson 自动配置"); | ||||
|                 return bean; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 疯狂的狮子li
					疯狂的狮子li