¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * 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.config; |
| | | |
| | | import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; |
| | | import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; |
| | | import org.springframework.data.redis.serializer.RedisSerializer; |
| | | |
| | | /** |
| | | * redis åºåå |
| | | * |
| | | * @author L.cm |
| | | */ |
| | | public interface BladeRedisSerializerConfigAble { |
| | | |
| | | /** |
| | | * JSONåºååç±»ååæ®µ |
| | | */ |
| | | String TYPE_NAME = "@class"; |
| | | |
| | | /** |
| | | * åºååæ¥å£ |
| | | * |
| | | * @param properties é
ç½® |
| | | * @return RedisSerializer |
| | | */ |
| | | RedisSerializer<Object> redisSerializer(BladeRedisProperties properties); |
| | | |
| | | /** |
| | | * é»è®¤çåºååæ¹å¼ |
| | | * |
| | | * @param properties é
ç½® |
| | | * @return RedisSerializer |
| | | */ |
| | | default RedisSerializer<Object> defaultRedisSerializer(BladeRedisProperties properties) { |
| | | BladeRedisProperties.SerializerType serializerType = properties.getSerializerType(); |
| | | if (BladeRedisProperties.SerializerType.JDK == serializerType) { |
| | | /** |
| | | * SpringBootæ©å±äºClassLoaderï¼è¿è¡å离æå
çæ¶åï¼ä½¿ç¨å°JdkSerializationRedisSerializerçå°æ¹ |
| | | * ä¼å 为ClassLoaderçä¸å导è´å è½½ä¸å°Class |
| | | * æå®ä½¿ç¨é¡¹ç®çClassLoader |
| | | * |
| | | * JdkSerializationRedisSerializeré»è®¤ä½¿ç¨{@link sun.misc.Launcher.AppClassLoader} |
| | | * SpringBooté»è®¤ä½¿ç¨{@link org.springframework.boot.loader.LaunchedURLClassLoader} |
| | | */ |
| | | ClassLoader classLoader = this.getClass().getClassLoader(); |
| | | return new JdkSerializationRedisSerializer(classLoader); |
| | | } |
| | | return new GenericJackson2JsonRedisSerializer(TYPE_NAME); |
| | | } |
| | | } |