springboot缓存caffeine
时间: 2023-10-13 16:25:42 浏览: 92
spring-boot-redis-guava-caffeine-cache:springboot 使用 redis guava caffeine 缓存示例
Caffeine是一个基于Java 8的高性能缓存库,可以用于Spring Boot应用程序中。使用Caffeine可以提高应用程序的性能和响应速度,因为缓存可以减少对数据库和其他资源的访问。
在Spring Boot应用程序中,可以使用Spring的缓存抽象来集成Caffeine。下面是一个使用Caffeine缓存的示例:
1. 首先,你需要在pom.xml文件中添加以下依赖项:
```xml
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.8.5</version>
</dependency>
```
2. 然后,在应用程序的配置类中,添加@EnableCaching注解来启用缓存,并创建一个名为cacheManager的Bean来配置缓存:
```java
@Configuration
@EnableCaching
public class CacheConfig {
@Bean
public CaffeineCacheManager cacheManager() {
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
cacheManager.setCaffeine(Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.HOURS));
return cacheManager;
}
}
```
在这个配置中,我们使用CaffeineCacheManager创建缓存管理器,并设置缓存的过期时间为1小时。
3. 接下来,在需要缓存的方法上添加@Cacheable注解来启用缓存,并指定缓存的名称:
```java
@Service
public class MyService {
@Autowired
private MyRepository myRepository;
@Cacheable("myCache")
public List<MyObject> findAll() {
return myRepository.findAll();
}
}
```
在这个示例中,我们使用@Cacheable注解来缓存findAll()方法的结果,并将缓存的名称设置为“myCache”。
这就是一个使用Caffeine缓存的Spring Boot应用程序的示例。当findAll()方法被调用时,如果缓存中已经有了数据,那么就会直接返回缓存中的数据,否则就会执行方法并将结果存储在缓存中。
阅读全文