欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年11月06日 11:18:05   作者:蒼青浪  
這篇文章主要介紹了spring boot注解方式使用redis緩存操作,結(jié)合實(shí)例形式分析了spring boot注解方式使用redis緩存相關(guān)的依賴庫引入、注解使用及redis緩存相關(guān)操作技巧,需要的朋友可以參考下

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

引入依賴庫

在pom中引入依賴庫,如下

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
 <groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
</dependency>

注解使用

@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官方文檔:

名字 位置 描述 示例
methodName root對象 當(dāng)前被調(diào)用的方法名 #root.methodName
method root對象 當(dāng)前被調(diào)用的方法 #root.method.name
target root對象 當(dāng)前被調(diào)用的目標(biāo)對象 #root.target
targetClass root對象 當(dāng)前被調(diào)用的目標(biāo)對象類 #root.targetClass
args root對象 當(dāng)前被調(diào)用的方法的參數(shù)列表 #root.args[0]
caches root對象 當(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<String, String> 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緩存操作技巧匯總

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

相關(guān)文章

  • stream中使用peek一些陷阱避免及解決方法

    stream中使用peek一些陷阱避免及解決方法

    這篇文章主要為大家介紹了stream中使用peek一些陷阱避免及解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 談?wù)凧ava類型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType

    談?wù)凧ava類型中ParameterizedType,GenericArrayType,TypeVariabl,Wild

    這篇文章主要介紹Java類型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • Java中如何使用Response重定向

    Java中如何使用Response重定向

    這篇文章主要介紹了Java中如何使用Response重定向,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • spring cloud Hystrix斷路器的使用(熔斷器)

    spring cloud Hystrix斷路器的使用(熔斷器)

    這篇文章主要介紹了spring cloud Hystrix斷路器的使用(熔斷器),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java LinkedHashMap深入分析源碼

    Java LinkedHashMap深入分析源碼

    大多數(shù)情況下,只要不涉及線程安全問題,Map基本都可以使用HashMap,不過HashMap有一個(gè)問題,就是迭代HashMap的順序并不是HashMap放置的順序,也就是無序。HashMap的這一缺點(diǎn)往往會帶來困擾,所以LinkedHashMap就閃亮登場了,這篇文章通過源碼解析帶你了解LinkedHashMap
    2022-11-11
  • SWT(JFace)體驗(yàn)之模擬BorderLayout布局

    SWT(JFace)體驗(yàn)之模擬BorderLayout布局

    SWT(JFace)體驗(yàn)之模擬BorderLayout布局代碼。
    2009-06-06
  • binarySearch在java的查找實(shí)例用法

    binarySearch在java的查找實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于binarySearch在java的查找實(shí)例用法,對此有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-02-02
  • MyBatis和MyBatis Plus并存問題及解決

    MyBatis和MyBatis Plus并存問題及解決

    最近需要使用MyBatis和MyBatis Plus,就會導(dǎo)致MyBatis和MyBatis Plus并存,本文主要介紹了MyBatis和MyBatis Plus并存問題及解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Spring Security靈活的PasswordEncoder加密方式解析

    Spring Security靈活的PasswordEncoder加密方式解析

    這篇文章主要介紹了Spring Security靈活的PasswordEncoder加密方式解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java實(shí)現(xiàn)心跳機(jī)制的方法

    Java實(shí)現(xiàn)心跳機(jī)制的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)心跳機(jī)制的方法,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07

最新評論