🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
利用spring cache来操作缓存,可以很方便的在redis和ehcache之间切换缓存实现,利用spring cache 的缓存注解,加到方法之上可以很方便的缓存方法的结果,如果参数对应的键值存在了缓存,则下一次走这个方法则会直接返回缓存的结果,spring cache提供了4个注解来操作缓存. > * 1.@Cacheable表明在调用方法之前,首先应该在缓存中查找方法的返回值,如果这个值能够找到,则会返回缓存的值,否则执行该方法,并将返回值放到缓存中,一般在数据库查询(`select`)之后调用这个注解 > * 2.@CachePut表明在方法调用前不会检查缓存,方法始终都会被调用,调用之后把结果放到缓存中,一般在数据库操作插入数据(`save`)的时候调用 > * 3.@CacheEvict表明spring会清除一个或者多个缓存,一般在数据库更新或者删除数据的时候调用(`update`或者`delete`) > * 4.@Caching分组的注解,可以同时应用多个其他缓存注解,可以相同类型或者不同类型 一般在用这些注解的时候,我们需要填写两个参数,一个是`value`代表缓存的名称,一个是`key`代表缓存的键值  ![image_1c4rro76j1s151juv1l2g16ft1mcc9.png-32.8kB](https://img-blog.csdnimg.cn/20181228174638201) 如上图所示,键值`key`一般包含两部分组成,一部分是`键的标识`例如上图中的`CacheKey.SINGLE_ROLE_NAME`,一部分是`参数`(一般是参数的值)例如上图中的`#roleId`