真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

springboot注解方式使用redis緩存操作示例

本文實(shí)例講述了spring boot注解方式使用redis緩存操作。分享給大家供大家參考,具體如下:

10年積累的做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有安溪免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

引入依賴庫

在pom中引入依賴庫,如下


 org.springframework.boot
 spring-boot-starter-data-redis


 redis.clients
 jedis


注解使用

@Cacheable
@Cacheable("product")
@Cacheable(value = {"product","order"}, key = "#root.targetClass+'-'+#id")
@Cacheable(value = "product", key = "#root.targetClass+'-'+#id")

自定義cacheManager

@Cacheable(value = "product", key = "#root.targetClass+'-'+#id” cacheManager="cacheManager")
@CachePut

應(yīng)用到寫數(shù)據(jù)的方法上,如新增/修改方法

@CachePut(value = "product", key = "#root.targetClass+'-'+#product.id")
@CacheEvict 

即應(yīng)用到移除數(shù)據(jù)的方法上,如刪除方法

@CacheEvict(value = "product", key = "#root.targetClass+'-'+#id")

提供的SpEL上下文數(shù)據(jù)

Spring Cache提供了一些供我們使用的SpEL上下文數(shù)據(jù),下表直接摘自Spring官方文檔:

名字位置描述示例
methodNameroot對(duì)象當(dāng)前被調(diào)用的方法名#root.methodName
methodroot對(duì)象當(dāng)前被調(diào)用的方法#root.method.name
targetroot對(duì)象當(dāng)前被調(diào)用的目標(biāo)對(duì)象#root.target
targetClassroot對(duì)象當(dāng)前被調(diào)用的目標(biāo)對(duì)象類#root.targetClass
argsroot對(duì)象當(dāng)前被調(diào)用的方法的參數(shù)列表#root.args[0]
cachesroot對(duì)象當(dāng)前方法調(diào)用使用的緩存列表(如@Cacheable(value={"cache1", "cache2"})),則有兩個(gè)cache#root.caches[0].name
argument name執(zhí)行上下文當(dāng)前被調(diào)用的方法的參數(shù),如findById(Long id),我們可以通過#id拿到參數(shù)#user.id
result執(zhí)行上下文方法執(zhí)行后的返回值(僅當(dāng)方法執(zhí)行之后的判斷有效,如‘unless','cache evict'的beforeInvocation=false)#result

自定義Cache配置

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
 /**
 * 自定義redis key值生成策略
 */
 @Bean
 @Override
 public KeyGenerator keyGenerator() {
  return (target, method, params) -> {
   StringBuilder sb = new StringBuilder();
   sb.append(target.getClass().getName());
   sb.append(method.getName());
   for (Object obj : params) {
    sb.append(obj.toString());
   }
   return sb.toString();
  };
 }
 @Bean
 public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
  ObjectMapper om = new ObjectMapper();
  om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
  om.enableDefaultTyping(Object

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Spring框架入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。


本文題目:springboot注解方式使用redis緩存操作示例
網(wǎng)頁地址:http://weahome.cn/article/pghjsg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部