簡介
學了springcloud如何操作資料庫進行增刪改查,又學了springcloud如何操作reids把資料儲存到redis。今天結合資料庫操作和reids操作,來看看如何使用SpringCache。SpringCache提供了基於註解的快取配置方法。它本質上不是一個具體的快取實現方案(例如EHCache),而是一個對快取使用的抽象和封裝,透過在已有程式碼中打上幾個預定義的註釋,就可以實現希望達到的快取效果。SpringCache支援跟第三方快取例如EHCache、Redis整合;另外也提供了開箱即用的預設實現,可以直接拿來使用。SpringCache支援使用SpEL(Spring Expression Language)來定義快取的key和各種condition,因此具備相當的靈活性,並可以支援非常複雜的語義。
org.springframework.data
spring-data-redis
redis.clients
jedis
2.9.0
2. 新增redis配置
redis:
host: 192.168.2.10
port: 6379
3. 啟動類新增@EnableCaching註解
package com.tensquare.gathering;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import util.IdWorker;
@SpringBootApplication
@EnableCaching
public class GatheringApplication {
// com.tensquare.gathering.GatheringApplication
public static void main(String[] args) {
SpringApplication.run(GatheringApplication.class, args);
}
@Bean
public IdWorker idWorkker(){
return new IdWorker(1, 1);
4. @Cacheable註解的用法
/**
* 根據ID查詢實體
* @param id
* @return
* @Cacheable 新增快取 value屬性表示快取整體唯一標識,key屬性標識快取鍵值對中的key
*/
@Cacheable(value = "gathering",key = "#id")
public Gathering findById(String id) {
return gatheringDao.findById(id).get();
5. @CacheEvict的用法
* 修改
* @param gathering
@CacheEvict(value = "gathering", key = "#gathering.id")
public void update(Gathering gathering) {
gatheringDao.save(gathering);
public void deleteById(String id) {
gatheringDao.deleteById(id);
簡介
學了springcloud如何操作資料庫進行增刪改查,又學了springcloud如何操作reids把資料儲存到redis。今天結合資料庫操作和reids操作,來看看如何使用SpringCache。SpringCache提供了基於註解的快取配置方法。它本質上不是一個具體的快取實現方案(例如EHCache),而是一個對快取使用的抽象和封裝,透過在已有程式碼中打上幾個預定義的註釋,就可以實現希望達到的快取效果。SpringCache支援跟第三方快取例如EHCache、Redis整合;另外也提供了開箱即用的預設實現,可以直接拿來使用。SpringCache支援使用SpEL(Spring Expression Language)來定義快取的key和各種condition,因此具備相當的靈活性,並可以支援非常複雜的語義。
SpringCloud用Spring Cache的方式使用Redis快取 pom.xml中引入SpringDataRedisorg.springframework.data
spring-data-redis
redis.clients
jedis
2.9.0
2. 新增redis配置
redis:
host: 192.168.2.10
port: 6379
3. 啟動類新增@EnableCaching註解
package com.tensquare.gathering;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import util.IdWorker;
@SpringBootApplication
@EnableCaching
public class GatheringApplication {
// com.tensquare.gathering.GatheringApplication
public static void main(String[] args) {
SpringApplication.run(GatheringApplication.class, args);
}
@Bean
public IdWorker idWorkker(){
return new IdWorker(1, 1);
}
}
4. @Cacheable註解的用法
/**
* 根據ID查詢實體
* @param id
* @return
* @Cacheable 新增快取 value屬性表示快取整體唯一標識,key屬性標識快取鍵值對中的key
*/
@Cacheable(value = "gathering",key = "#id")
public Gathering findById(String id) {
return gatheringDao.findById(id).get();
}
5. @CacheEvict的用法
/**
* 修改
* @param gathering
*/
@CacheEvict(value = "gathering", key = "#gathering.id")
public void update(Gathering gathering) {
gatheringDao.save(gathering);
}
/**
* @param id
*/
@CacheEvict(value = "gathering", key = "#gathering.id")
public void deleteById(String id) {
gatheringDao.deleteById(id);
}