From cb104064551718b8f86ddaba6b6568788a506b04 Mon Sep 17 00:00:00 2001 From: minglipro Date: Sun, 24 Aug 2025 14:19:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(utils):=20=E6=9B=B4=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E5=B9=B6=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=BA=8F=E5=88=97=E5=8C=96=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -将项目版本号从 1.1.3 升级到1.1.4 -为 time 和 uuid 模块添加自定义的 Jackson 序列化器和反序列化器 - 新增 Serializers 类,统一注册自定义序列化器 --- gradle.properties | 2 +- .../mingliqiye/utils/jackson/Serializers.java | 23 +++++++++++++++++++ .../utils/time/serialization/Jackson.java | 20 ++++++++++++---- .../utils/uuid/serialization/Jackson.java | 20 ++++++++++++---- 4 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 src/com/mingliqiye/utils/jackson/Serializers.java diff --git a/gradle.properties b/gradle.properties index 508f8f8..a2bc37a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ JDKVERSIONS=1.8 GROUPSID=com.mingliqiye.utils ARTIFACTID=mingli-utils -VERSIONS=1.1.3 +VERSIONS=1.1.4 diff --git a/src/com/mingliqiye/utils/jackson/Serializers.java b/src/com/mingliqiye/utils/jackson/Serializers.java new file mode 100644 index 0000000..d3bdcec --- /dev/null +++ b/src/com/mingliqiye/utils/jackson/Serializers.java @@ -0,0 +1,23 @@ +package com.mingliqiye.utils.jackson; + +import com.fasterxml.jackson.databind.ObjectMapper; + +public class Serializers { + + /** + * 为ObjectMapper添加自定义序列化器 uuid time + * @see com.mingliqiye.utils.uuid.UUID + * @see com.mingliqiye.utils.time.DateTime + * @param objectMapper ObjectMapper实例,用于注册自定义序列化器 + */ + public static void addSerializers(ObjectMapper objectMapper) { + // 添加UUID相关的序列化器 + com.mingliqiye.utils.uuid.serialization.Jackson.addSerializers( + objectMapper + ); + // 添加时间相关的序列化器 + com.mingliqiye.utils.time.serialization.Jackson.addSerializers( + objectMapper + ); + } +} diff --git a/src/com/mingliqiye/utils/time/serialization/Jackson.java b/src/com/mingliqiye/utils/time/serialization/Jackson.java index 953f794..f8b56dc 100644 --- a/src/com/mingliqiye/utils/time/serialization/Jackson.java +++ b/src/com/mingliqiye/utils/time/serialization/Jackson.java @@ -4,13 +4,12 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.core.type.WritableTypeId; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; +import com.fasterxml.jackson.databind.module.SimpleModule; import com.mingliqiye.utils.time.DateTime; import com.mingliqiye.utils.time.Formatter; + import java.io.IOException; /** @@ -20,6 +19,19 @@ import java.io.IOException; */ public class Jackson { + /** + * 为ObjectMapper添加自定义的 DateTime 序列化器和反序列化器 + * + * @param objectMapper 用于注册自定义序列化模块的ObjectMapper实例 + */ + public static void addSerializers(ObjectMapper objectMapper) { + // 创建SimpleModule并添加DateTime类型的序列化器和反序列化器 + SimpleModule module = new SimpleModule() + .addSerializer(DateTime.class, new DateTimeJsonSerializerM7()) + .addDeserializer(DateTime.class, new DateTimeJsonDeserializerM7()); + objectMapper.registerModule(module); + } + /** * yyyy-MM-dd HH:mm:ss.SSSSSSS 的反序列化适配器 *

diff --git a/src/com/mingliqiye/utils/uuid/serialization/Jackson.java b/src/com/mingliqiye/utils/uuid/serialization/Jackson.java index 1703acc..9bb2566 100644 --- a/src/com/mingliqiye/utils/uuid/serialization/Jackson.java +++ b/src/com/mingliqiye/utils/uuid/serialization/Jackson.java @@ -4,13 +4,12 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.core.type.WritableTypeId; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; +import com.fasterxml.jackson.databind.module.SimpleModule; import com.mingliqiye.utils.uuid.UUID; import com.mingliqiye.utils.uuid.UUIDException; + import java.io.IOException; /** @@ -20,6 +19,19 @@ import java.io.IOException; */ public class Jackson { + /** + * 为ObjectMapper添加UUID序列化和反序列化器 + * + * @param objectMapper ObjectMapper实例,用于注册自定义序列化模块 + */ + public static void addSerializers(ObjectMapper objectMapper) { + // 创建SimpleModule并添加UUID的序列化器和反序列化器 + SimpleModule module = new SimpleModule() + .addSerializer(UUID.class, new UUIDJsonSerializer()) + .addDeserializer(UUID.class, new UUIDJsonDeserializer()); + objectMapper.registerModule(module); + } + /** * UUID 反序列化器 *