Spring中的cache是为方法做缓存的,spring只是提供了个缓存抽象,具体的实现由的三方提供。

要使用Spring缓存,需要以下三步

1.Spring配置文件导入context:命名空间

2.Spring配置文件启用缓存,具体是添加 <cache:annotation-driven cache-manager="缓存管理器ID" />

3.配置缓存管理器,不同的缓存实现配置不同,如果是EhCache,需要先配置一个ehcache.xml

一、spring缓存配置的两种方法

Spring的缓存方式有两种,一种是直接缓存在内存中,不算真正的缓存实现。一般不推荐使用。这种内置缓存区,使用SimpleCacheManager类作为缓存管理器,底层直接使用JDKCurrentMap来实现缓存,该缓存管理器配置如下:

1.PNG

 

第二种是使用Ehcache作为缓存配置:EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。是一个第三方工具。

1. ehcache.xml的配置

2.PNG 

上面的ehcache.xml配置了两个缓存区,Spring中的Bean将会缓存在这些缓存区中,一般的,Spring容器中有多少个Bean,就会在ehcache中定义多少个缓存区。

2.配置缓存管理器

 

3.PNG 

其中第一个Bean是一个工厂Bean,用来配置EhCacheCacheManager, 第二个Bean才是为Spring缓存配置的缓存管理器,所以将第一个Bean注入第二个Bean

二、相关注解的解释

@Cacheable

4.PNG 

@CachePut

5.PNG 

@CacheEvict

6.PNG