From 3623c7ad92348e76a917ca844d76d27711d58191 Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期四, 26 十二月 2024 16:15:20 +0800
Subject: [PATCH] 集成获取mdm分发通用数据格式接口集成 日志输出到日志文件中
---
Source/BladeX-Tool/blade-starter-redis/src/main/java/org/springblade/core/redis/serializer/RedisKeySerializer.java | 75 +++++++++++++++++++++++++++++++++++++
1 files changed, 75 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX-Tool/blade-starter-redis/src/main/java/org/springblade/core/redis/serializer/RedisKeySerializer.java b/Source/BladeX-Tool/blade-starter-redis/src/main/java/org/springblade/core/redis/serializer/RedisKeySerializer.java
new file mode 100644
index 0000000..8a52ec1
--- /dev/null
+++ b/Source/BladeX-Tool/blade-starter-redis/src/main/java/org/springblade/core/redis/serializer/RedisKeySerializer.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: DreamLu 鍗㈡槬姊� (596392912@qq.com)
+ */
+
+package org.springblade.core.redis.serializer;
+
+import org.springframework.cache.interceptor.SimpleKey;
+import org.springframework.core.convert.ConversionService;
+import org.springframework.core.convert.support.DefaultConversionService;
+import org.springframework.data.redis.serializer.RedisSerializer;
+
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
+/**
+ * 灏唕edis key搴忓垪鍖栦负瀛楃涓�
+ *
+ * <p>
+ * spring cache涓殑绠�鍗曞熀鏈被鍨嬬洿鎺ヤ娇鐢� StringRedisSerializer 浼氭湁闂
+ * </p>
+ *
+ * @author L.cm
+ */
+public class RedisKeySerializer implements RedisSerializer<Object> {
+ private final Charset charset;
+ private final ConversionService converter;
+
+ public RedisKeySerializer() {
+ this(StandardCharsets.UTF_8);
+ }
+
+ public RedisKeySerializer(Charset charset) {
+ Objects.requireNonNull(charset, "Charset must not be null");
+ this.charset = charset;
+ this.converter = DefaultConversionService.getSharedInstance();
+ }
+
+ @Override
+ public Object deserialize(byte[] bytes) {
+ // redis keys 浼氱敤鍒板弽搴忓垪鍖�
+ if (bytes == null) {
+ return null;
+ }
+ return new String(bytes, charset);
+ }
+
+ @Override
+ public byte[] serialize(Object object) {
+ Objects.requireNonNull(object, "redis key is null");
+ String key;
+ if (object instanceof SimpleKey) {
+ key = "";
+ } else if (object instanceof String) {
+ key = (String) object;
+ } else {
+ key = converter.convert(object, String.class);
+ }
+ return key.getBytes(this.charset);
+ }
+
+}
--
Gitblit v1.9.3