本人写的博客都是平时工作中应用到的,同时也是兴趣使然,希望分享给有需要的程序猿,本文如有错误之处欢迎批评指正!!!!!!!!!
Spring 3.1 引入了基于凝视(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(比如EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中加入少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果。
下面大概说明一下如何配置spring cache:
1,引入spring cache的依赖,springboot中已整合该依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
2,yml文件中配置如下
#redis配置
redis:
host: 182.168.1.1
port: 6357
password: 123
database: 1
cache:
type: redis
3,项目启动类中添加注解@EnableCaching
@EnableCaching
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication .class, args);
}
}
4,为需要缓存的方法添加注解,若缓存中存在该key值的数据,则使用缓存数据;若缓存不存在该数据,则走方法体的程序获取数据。
@Cacheable(cacheNames = "test_cache")
public List<String> testCache() {
return new ArrayList<String>();
}
也可以指定方法中的参数作为缓存的key值
@Cacheable(cacheNames = "test_cache2",key = "'data_' + #type")
public List<String> testCache2(String type) {
return new ArrayList<String>();
}
清除指定缓存数据:
@CacheEvict(value = "test_cache",allEntries = true)
public void cleanCache() {
log.info("清除缓存");
}