diff --git a/spring-integration-redis/src/main/java/org/springframework/integration/redis/store/RedisMessageStore.java b/spring-integration-redis/src/main/java/org/springframework/integration/redis/store/RedisMessageStore.java index 1517a5762f..2402172975 100644 --- a/spring-integration-redis/src/main/java/org/springframework/integration/redis/store/RedisMessageStore.java +++ b/spring-integration-redis/src/main/java/org/springframework/integration/redis/store/RedisMessageStore.java @@ -18,6 +18,7 @@ package org.springframework.integration.redis.store; import java.util.Collection; +import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.BoundValueOperations; import org.springframework.data.redis.core.RedisTemplate; @@ -39,10 +40,12 @@ import org.springframework.util.Assert; * * @since 2.1 */ -public class RedisMessageStore extends AbstractKeyValueMessageStore { +public class RedisMessageStore extends AbstractKeyValueMessageStore implements BeanClassLoaderAware { private final RedisTemplate redisTemplate; + private boolean valueSerializerSet; + /** * Construct {@link RedisMessageStore} based on the provided * {@link RedisConnectionFactory} and default empty prefix. @@ -70,9 +73,17 @@ public class RedisMessageStore extends AbstractKeyValueMessageStore { this.redisTemplate.afterPropertiesSet(); } + @Override + public void setBeanClassLoader(ClassLoader classLoader) { + if (!this.valueSerializerSet) { + this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer(classLoader)); + } + } + public void setValueSerializer(RedisSerializer valueSerializer) { Assert.notNull(valueSerializer, "'valueSerializer' must not be null"); this.redisTemplate.setValueSerializer(valueSerializer); + this.valueSerializerSet = true; } @Override