一、配置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。"。
家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l
特别提醒:如果已有session中存在旧有的序列化值,更换序列化方法后,要删除旧值,使用新的序列化进行调试,否则会报序列化错误。
特别提醒:如果已有session中存在旧有的序列化值,更换序列化方法后,要删除旧值,使用新的序列化进行调试,否则会报序列化错误。









