springboot整合ehcache
springboot版本:2.5.1
1.pom文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
<version>2.5.2</version>
</dependency>
<!--ehcache-->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.8</version>
</dependency>
2.applicaiton.yaml配置
spring:
cache:
type: ehcache
jcache:
config: classpath:ehcache.xml
3.ehcache.xml配置
在resources目录下面放置ehcache.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="10"
timeToLiveSeconds="10"
overflowToDisk="false"/>
<cache name="jCache"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
maxElementsInMemory="100"
overflowToDisk="false"
diskPersistent="false"
memoryStoreEvictionPolicy="LRU" />
</ehcache>
4.启动类加开启缓存注解@EnableCaching
@EnableCaching
public class BootBootStrap {
public static void main(String[] args) {
SpringApplication.run(BootBootStrap.class, args);
}
}
5.缓存单独写在一个类当中 @Cacheable、@CachePut、 @CacheEvict
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@Service
public class CacheService {
@Cacheable(cacheNames = "jCache", key = "#key")
public String getFromJCache(String key) {
// 从 JCache 缓存中获取数据
System.out.println("重新获取");
return "jCacheCacheManager";
}
@CachePut(cacheNames = "jCache")
public void putIntoJCache(String key, String value) {
// 将数据存入 JCache 缓存
}
@CacheEvict(cacheNames = "jCache")
public void removeFromJCache(String key) {
// 从 JCache 缓存中删除数据
}
}