SpringBoot提供了对缓存的支持,通过在启动类中添加@EnableCaching注解自动化配置合适的缓存管理器(CacheManager),Spring Boot根据下面的顺序去侦测缓存提供者:
- Generic
- JCache (JSR-107)
- EhCache 2.x
- Hazelcast
- Infinispan
- Redis
- Guava
- Simple
SpringBoot的缓存机制:
SpringBoot缓存是依赖于由org.springframework.cache.Cache和org.springframework.cache.CacheManager接口实现的抽象高速缓存,不提供实际的存储,SpringBoot会根据实现自动配置合适的CacheManager,只要缓存支持通过@EnableCaching注释启用即可。基于Ehcache API实现的缓存操作工具类
SpringBoot 配置 EhCache 2.x
一、在pom文件中引入Ehcache依赖
二、在resources根目录下引入配置文件 ehcache.xml,增加需要的缓存配置
Ehcache.xml 文件配置详解:
- diskStore:为缓存路径,ehcache分为内存和磁盘两级,此属性定义磁盘的缓存位置。
- defaultCache:默认缓存策略,当ehcache找不到定义的缓存时,则使用这个缓存策略。只能定义一个。 name:缓存名称。
- maxElementsInMemory:缓存最大数目 maxElementsOnDisk:硬盘最大缓存个数。
- eternal:对象是否永久有效,一但设置了,timeout将不起作用。 overflowToDisk:是否保存到磁盘,当系统当机时
- timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。
- timeToLiveSeconds:设置对象在失效前允许存活时间(单位:秒)。最大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用,默认是0.