问题:使用了@EnableCaching和@Cacheable注解做缓存处理之后出现的问题
我们会发现,缓存启动@EnableCaching启动了,service类上该标注的缓存注解@Cacheable啥的也都标注了,但是还是报错了。出现这种状况,是因为在对实体类对象进行缓存存储时必须先实现序列化,否则会出现缓存异常。这里出现错误就是因为工具类SerializeUtil序列化时无法识别Comment对象,修改Comment类实现JDK自带的序列化接口Serializable(public class Comment implements Serializable)
见下列代码
@Entity(name = "t_comment")
public class Comment implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)//主键自增
private Integer id;
private String content;
private String author;
@Column(name = "a_id")
private Integer aId;
public Integer getId() {
return id;
}
如图所示,旁边还会出现redis的缓存小标志
修改完之后到Redis客户端可视化工具查看,会发现存储结果已经进来了,只不过value值是以经过JDK默认序列格式化后的HEX格式存储。
好了,到这里,基于注解的Redis缓存已经完了。如果能够解决你的问题,请多多支持up点个小小的赞吧。