1. 程式人生 > >在SpringBoot中基本快取的使用

在SpringBoot中基本快取的使用

在使用SpringBoot時基本的快取操作,步驟如下: 1.實體類和DAO層省略 2.測試類:

/**
 * (一)搭建基本環境
 * 1.匯入資料庫檔案,創建出department和employee表
 * 2.建立javaBean封裝資料
 * 3.整合Mybatis操作資料庫
 *    1)配置資料來源資訊
 *    2)使用註解版Mybatis
 *       1.使用@MapperScan註解指定需要掃描的mapper介面所在的包
 * (二)快速體驗快取
 *    SpringBoot步驟:
 *       1)開啟註解的快取EnableCaching
 *       2)標註快取註解即可
 *       Cacheable-標註方法快取
 *       CacheEvict-清空快取
 *       CachePut-保證方法被呼叫,又希望結果被快取
 */
@MapperScan("com.springboot01cache.mapper")
@SpringBootApplication
@EnableCaching
public class Springboot01CacheApplication {

	public static void main(String[] args) {
		SpringApplication.run(Springboot01CacheApplication.class, args);
	}
}

3.service類:

/**
     * 將方法的結果進行快取,以後再要相同的資料,直接從快取中獲取,不用呼叫方法
     * <p>
     * CacheManager(快取管理器)管理多個cache元件的,對快取的真正CRUD操作在cache元件中,每一個快取元件都有一個唯一自己的名字
     * 註解Cacheable中的幾個屬性:
     *    cacheNames/value:指定快取元件的名字
     *    key:快取資料使用的key,可以用它來指定,預設是使用方法引數的值,如下引數是1的話,值就是返回值
     *             如果編寫SpEl的話:#id,這些都是引數id的值,   #a0,#p0,#root.args[0]
     *    keyGenerator:key的生成器,可以自己指定key的生成器的元件id
     *             key/keyGenerator:二選一使用
     *    cacheManager:指定快取管理器,或者cacheResolver指定獲取解析器
     *    condition:指定符合條件的情況才使用快取,如condition="#id>0"
     *    unless:否定快取,當unless指定的條件為true,方法的返回值就不會快取,可以獲取到結果進行判斷
     *             unless="#result==null"
     *    sync:是否使用非同步模式
     * @param id
     * @return
     */
    @Cacheable(cacheNames = {"emp"})
    public Employee getEmp(Integer id) {
        System.out.println("查詢" + id);
        Employee employee = employeeMapper.getEmpById(id);
        return employee;
    }

基本的快取使用