如何修改Springsession Redis的默认序列化方法?
作者:WarmHope
时间:2023-04-24
浏览:0
一、配置Spring-session-redis的关键配置如下:二、查看RedisHttpSessionConfiguration源代码如下:@BeanpublicRedisTemplatesessionRedisTemplate(RedisConnectionFactoryconnectionFactory){RedisTemplatetemplate=newRedisTemplate();template.setKeySerializer(newStringRedisSerializer());tem
一、配置Spring-session-redis 的关键配置如下:
二、查看 RedisHttpSessionConfiguration 源代码如下:
@Bean public RedisTemplate
创建RedisTemplate时,指定的默认序列化是:StringRedisSerializer,当 defaultRedisSerializer != null 时,重新指定了序列化方法。defaultRedisSerializer 的初始化代码如下:
@Autowired(required = false)
@Qualifier("springSessionDefaultRedisSerializer")
public void setDefaultRedisSerializer(
RedisSerializer defaultRedisSerializer) {
this.defaultRedisSerializer = defaultRedisSerializer;
} 因此,我们只需要创建名为 springSessionDefaultRedisSerializer 的Bean,及可修改默认序列化方法。
注:使用JSON序列化,在特定的场景,会报错,谨慎使用。
三、RedisTemplate 初始化代码如下:
public void afterPropertiesSet() {
super.afterPropertiesSet();
boolean defaultUsed = false;
if (defaultSerializer == null) {
defaultSerializer = new JdkSerializationRedisSerializer(
classLoader != null ? classLoader : this.getClass().getClassLoader());
}
if (enableDefaultSerializer) {
if (keySerializer == null) {
keySerializer = defaultSerializer;
defaultUsed = true;
}
if (valueSerializer == null) {
valueSerializer = defaultSerializer;
defaultUsed = true;
}
if (hashKeySerializer == null) {
hashKeySerializer = defaultSerializer;
defaultUsed = true;
}
if (hashValueSerializer == null) {
hashValueSerializer = defaultSerializer;
defaultUsed = true;
}
}
if (enableDefaultSerializer && defaultUsed) {
Assert.notNull(defaultSerializer, "default serializer null and not all serializers initialized");
}
if (scriptExecutor == null) {
this.scriptExecutor = new DefaultScriptExecutor(this);
}
initialized = true;
} 可以看出,如果没有指定默认值,使用 JdkSerializationRedisSerializer。
特别提醒:如果已有session中存在旧有的序列化值,更换序列化方法后,要删除旧值,使用新的序列化进行调试,否则会报序列化错误。
特别提醒:如果已有session中存在旧有的序列化值,更换序列化方法后,要删除旧值,使用新的序列化进行调试,否则会报序列化错误。
作者最新文章
Photoshop图层阵列怎么做?复制多个图层并整齐排列
2026-09-22 16:42
3dmax动画技巧总结:动画制作步骤与渲染视频教程
2026-09-22 14:47
思源笔记
2026-09-16 17:42
在线PDF转TXT操作步骤与乱码排查指南
2026-09-04 13:02
PDF加水印后如何检查显示效果?在线工具操作步骤与避坑指南
2026-09-03 13:02
上一篇:
如何基于java语言实现快递系统
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































