Browse Source

重构 LocalDateTimeDeserializer 和 LocalDateTimeSerializer 的命名,可读性更好

YunaiV 11 months ago
parent
commit
321f71de73

+ 6 - 6
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/config/YudaoJacksonAutoConfiguration.java

@@ -2,9 +2,9 @@ package cn.iocoder.yudao.framework.jackson.config;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
-import cn.iocoder.yudao.framework.jackson.core.databind.LocalDateTimeDeserializer;
-import cn.iocoder.yudao.framework.jackson.core.databind.LocalDateTimeSerializer;
 import cn.iocoder.yudao.framework.jackson.core.databind.NumberSerializer;
+import cn.iocoder.yudao.framework.jackson.core.databind.TimestampLocalDateTimeDeserializer;
+import cn.iocoder.yudao.framework.jackson.core.databind.TimestampLocalDateTimeSerializer;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.module.SimpleModule;
 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
@@ -37,13 +37,13 @@ public class YudaoJacksonAutoConfiguration {
                 .addDeserializer(LocalDate.class, LocalDateDeserializer.INSTANCE)
                 .addSerializer(LocalTime.class, LocalTimeSerializer.INSTANCE)
                 .addDeserializer(LocalTime.class, LocalTimeDeserializer.INSTANCE)
-                // 新增 LocalDateTime 序列化、反序列化规则
-                .addSerializer(LocalDateTime.class, LocalDateTimeSerializer.INSTANCE)
-                .addDeserializer(LocalDateTime.class, LocalDateTimeDeserializer.INSTANCE);
+                // 新增 LocalDateTime 序列化、反序列化规则,使用 Long 时间戳
+                .addSerializer(LocalDateTime.class, TimestampLocalDateTimeSerializer.INSTANCE)
+                .addDeserializer(LocalDateTime.class, TimestampLocalDateTimeDeserializer.INSTANCE);
         // 1.2 注册到 objectMapper
         objectMappers.forEach(objectMapper -> objectMapper.registerModule(simpleModule));
 
-        // 2. 设置 objectMapper 到 JsonUtils {
+        // 2. 设置 objectMapper 到 JsonUtils
         JsonUtils.init(CollUtil.getFirst(objectMappers));
         log.info("[init][初始化 JsonUtils 成功]");
         return new JsonUtils();

+ 7 - 5
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/LocalDateTimeDeserializer.java → yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/TimestampLocalDateTimeDeserializer.java

@@ -10,16 +10,18 @@ import java.time.LocalDateTime;
 import java.time.ZoneId;
 
 /**
- * LocalDateTime反序列化规则
- * <p>
- * 会将毫秒级时间戳反序列化为LocalDateTime
+ * 基于时间戳的 LocalDateTime 反序列化器
+ *
+ * @author 老五
  */
-public class LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
+public class TimestampLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
 
-    public static final LocalDateTimeDeserializer INSTANCE = new LocalDateTimeDeserializer();
+    public static final TimestampLocalDateTimeDeserializer INSTANCE = new TimestampLocalDateTimeDeserializer();
 
     @Override
     public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
+        // 将 Long 时间戳,转换为 LocalDateTime 对象
         return LocalDateTime.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault());
     }
+
 }

+ 7 - 5
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/LocalDateTimeSerializer.java → yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/TimestampLocalDateTimeSerializer.java

@@ -9,16 +9,18 @@ import java.time.LocalDateTime;
 import java.time.ZoneId;
 
 /**
- * LocalDateTime序列化规则
- * <p>
- * 会将LocalDateTime序列化为毫秒级时间戳
+ * 基于时间戳的 LocalDateTime 序列化器
+ *
+ * @author 老五
  */
-public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
+public class TimestampLocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
 
-    public static final LocalDateTimeSerializer INSTANCE = new LocalDateTimeSerializer();
+    public static final TimestampLocalDateTimeSerializer INSTANCE = new TimestampLocalDateTimeSerializer();
 
     @Override
     public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+        // 将 LocalDateTime 对象,转换为 Long 时间戳
         gen.writeNumber(value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
     }
+
 }