关于spring 的@cacheable 注解 无法生效的问题

问题: 类似于 spring mvc @Cacheable注解问题

           我对Service层中的一个private 方法B上添加了@cacheable 注解,这个方法又一些比较繁琐但是只需要执行一次的逻辑(init)。目的是希望在第一次调用该方法后,只有的调用只需要访问缓存即可。但是发现每次有方法调用这个私有方法时,还是会反复执行方法中的操作,颇low。

 

          最初以为是,B的返回值是在方法中new的一个对象导致的,将注解迁移到其中的mapper接口上,问题解决。但是总觉的怪怪的。

          后来就看到了上面说到的那篇帖子,其中3楼的回复——刚发现,还是lz自己说的。。。——指出,“不能再同一个类中调用被注解缓存了的方法”。于是就按照这种说法,将B方法公开,然后是有Controller层中的A方法调用它。实验发现,在第二次调用时,程序会从缓存中取出数据,问题解决。


具体愿意: 待分析,估计与该注解的实现方式有关系(废话。。。)

你可能感兴趣的:(Java,spring)