一、@EnableCaching:主要用于开启基于注解的缓存支持,用在Application类上
二、@Cacheable(value=”accountCache”)
该注解主要针对方法配置,能够根据方法的请求参数对其结果进行缓存,比如如果缓存中存在该值,则用缓存数据, 如果不在缓存中,则存入缓存;
这个注释的意思是,当调用这个方法的时候,会从一个名叫 accountCache 的缓存中查询,如果没有,则执行实际的方法(即查询数据库),并将执行的结果存入缓存中,否则返回缓存中的对象。这里的缓存中的 key 就是参数 userName,value 就是 Account 对象。“accountCache”缓存是在 spring*.xml 中定义的名称。
属性:
value/cacheNames:指定缓存空间的名称,比配属性。可二选一使用。
key:指定缓存中数据的key,默认使用方法参数值,也可使用SPEL表达式。
keyGenerator:指定缓存数据的key的生成器,与key属性二选一使用。
cacheManager:指定缓存的管理器
cacheResolver:指定缓存的解析器,与cacheManager属性二选一使用。
condition:指定在符合某种条件下,进行数据缓存。
unless:指定在符合某种条件下不进行数据缓存。
sync:指定是否使用异步缓存,默认为false。
三、@CacheEvict :该注解用于清理缓存
四、@CachePut:
与@Cacheable不同的是使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。