Spring数据模板:序列化值和HashValue
我尝试了以下教程: 我的问题与此有关: 我能够使用StringRedisSerializer解决键和散列键Spring数据模板:序列化值和HashValue,spring,redis,serialization,Spring,Redis,Serialization,我尝试了以下教程: 我的问题与此有关: 我能够使用StringRedisSerializer解决键和散列键 <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/> <bean id="redisTemplate" class="org.springframework.data.redis.core.Redis
<bean
id="stringRedisSerializer"
class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:keySerializer-ref="stringRedisSerializer"
p:hashKeySerializer-ref="stringRedisSerializer"
/>
但出现了一个错误:
“无法将用户强制转换为java.lang.String”
任何人都可以分享如何使用值/哈希值的序列化程序吗?Redis将键和值存储为字符串。由您的持久层来处理解析。在本例中,用户是POJO而不是字符串。我建议您使用JacksonJsonRedisSerializer而不是StringRedisSerializer。这样,您将json存储为您的值
<bean id="userJsonRedisSerializer"
class="org.springframework.data.redis.serializer.JacksonJsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
这似乎是将用户对象序列化为字符串对象。相反,您可以通过编写“class User implements java.io.Serializable”将用户对象标记为可序列化,然后java默认序列化程序将自动处理。所以最好不要在beans.xml中配置任何与“Serializer ref=”相关的内容。我们可以像这里那样使用多个类吗??
<bean id="userJsonRedisSerializer"
class="org.springframework.data.redis.serializer.JacksonJsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>