在程序中加上緩存, 是程序性能優(yōu)化常用方法, 在springboot出現(xiàn)以前, 加緩存比較繁瑣,近幾日學習了下springboot中使用方法,發(fā)現(xiàn)相當簡便,發(fā)個日志,記載下自已的一點總結.
目錄:
一.添加cache所要做的準備工作
二.開啟緩存注解
三. 常用的緩存注解
四. 總結
一.添加cache所要做的準備工作
1. 在pom.xml中引入cache開發(fā)需要的依賴包
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
.......
</</dependencies>
二.開啟緩存注解
在main函數(shù)上添加"@EnableCaching"注解,
@EnableCaching:開啟基于注解的緩存
詳細如下所示:
@MapperScan("com.dyjs.cache.dyspringboot.mapper")
@EnableCaching
@SpringBootApplication
public class DyspringbootNameApplication {
public static void main(String[] args) {
SpringApplication.run(DyspringbootNameApplication.class, args);
}
}
三.常用的緩存注解
當前我自已的例子使用的標簽有: @Cacheable/@CachePut/@CacheEvict/Caching/@CacheConfig, 一般這些標簽我們加在 Sevice層上
說明: 各標簽相關的參數(shù)說明可在百度中搜一下就有了, 我就不再啰嗦了, 只給出最簡單的程序說明
- @Cacheable 的作用 主要針對方法配置撬统,能夠根據(jù)方法的請求參數(shù)對其結果進行緩存, 先查詢緩存,再查詢db
@Cacheable(value = "emp")
public Employee getEmpById(Integer id) {
System.out.println("查詢 " + id + "號員工");
Employee ret = employeeMapper.getEmpById(id);
if (ret == null) {
String msg = "沒有查到 id=" + id + " 號員工";
System.out.println(msg);
}
return ret;
}
- @CachePut 的作用 主要針對方法配置脂凶,能夠根據(jù)方法的請求參數(shù)對其結果進行緩存,和 @Cacheable 不同的是费彼,它每次都會觸發(fā)真實方法的調用
@CachePut(value = "emp", key = "#emp.id")
public Employee updateEmpById(Employee emp) {
System.out.println("更新 " + emp.getId() + "號員工, " + emp);
employeeMapper.updateEmp(emp);
return emp;
}
- @CacheEvict 的作用 主要針對方法配置, 能夠根據(jù)一定的條件對緩存進行清空
public String clearCache() {
System.out.println("清除緩存");
return "清除緩存成功";
}
- @CacheConfig的作用,主要針對類配置 @Cacheable()里面都有一個value=“xxx”的屬性,這顯然如果方法多了喘鸟,寫起來也是挺累的橡卤,
@CacheConfig(cacheNames = "emp")
@Service
public class EmployeeService {
四. 總結
本例只是一個本地緩存,使用起來相當方便, 目前自已也是剛剛摸索到這里.