在SpringBoot中基本快取的使用
阿新 • • 發佈:2018-12-18
在使用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; }
基本的快取使用