最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot緩存的使用實踐

 更新時間:2018年06月02日 09:21:45   作者:luckyxl029  
這篇文章主要介紹了springboot緩存的使用,spring針對各種緩存實現(xiàn),抽象出了CacheManager接口,用戶使用該接口處理緩存,而無需關(guān)心底層實現(xiàn),感興趣的小伙伴們可以參考一下

spring針對各種緩存實現(xiàn),抽象出了CacheManager接口,用戶使用該接口處理緩存,而無需關(guān)心底層實現(xiàn)。并且也可以方便的更改緩存的具體實現(xiàn),而不用修改業(yè)務(wù)代碼。下面對于在springboot中使用緩存做一簡單介紹:

1、添加依賴

<dependency> 
  <groupId>org.springframework.boot</groupId> 
  <artifactId>spring-boot-starter-cache</artifactId> 
</dependency> 

2、在配置類里開啟緩存,如下圖所示:

3、在需要使用緩存的方法上加上注解,如下:

@Override 
  //@CachePut 該注解會將方法的返回值緩存起來,其中緩存名字是 people,數(shù)據(jù)的key是person的id 
  @CachePut(value = "people", key = "#person.id") 
  public Person save(Person person) { 
    Person p = personRepository.save(person); 
    System.out.println("為id、key為:"+p.getId()+"數(shù)據(jù)做了緩存"); 
    return p; 
  } 
@Override 
  //@CacheEvict 該注解會刪除people緩存中key為id 的數(shù)據(jù) 
  @CacheEvict(value = "people", key = "#id") 
  public void remove(Long id) { 
    System.out.println("刪除了id、key為"+id+"的數(shù)據(jù)緩存"); 
    //這里不做實際刪除操作 
  }
@Override 
  //@Cacheable 該注解會在方法執(zhí)行時,判斷緩存people中key為#person.id 
的緩存是否存在,如果存在,則直接返回緩存中的數(shù)據(jù)。如果不存在,則會查數(shù)據(jù)庫,然后將返回結(jié)果緩存起來。 
  @Cacheable(value = "people", key = "#person.id") 
  public Person findOne(Person person) { 
    Person p = personRepository.findOne(person.getId()); 
    System.out.println("為id、key為:"+p.getId()+"數(shù)據(jù)做了緩存"); 
    return p; 
  }

以上幾部就完成了緩存,但是現(xiàn)在的緩存是默認的基于內(nèi)存的,沒有實現(xiàn)持久化。下面以redis作為緩存的具體實現(xiàn),如下:

4、添加依賴

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

5、在配置文件里添加redis配置

redis.hostname=localhost 
redis.port=6379 

6、在spring容器中配置redis

@Configuration 
public class RedisConfig extends CachingConfigurerSupport{ 
  private static final Logger logger = LoggerFactory.getLogger(RedisConfig.class); 
 
  @Autowired 
  private Environment env; 
 
  @Bean 
  public JedisConnectionFactory redisConnectionFactory() { 
    JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory(); 
    redisConnectionFactory.setHostName(env.getProperty("redis.hostname")); 
    redisConnectionFactory.setPort(Integer.parseInt(env.getProperty("redis.port"))); 
    return redisConnectionFactory; 
  } 
 
  @Bean 
  public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory cf) { 
    RedisTemplate<String, String> redisTemplate = new RedisTemplate<>(); 
    redisTemplate.setConnectionFactory(cf); 
    return redisTemplate; 
  } 
 
  @Bean 
  public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) { 
    RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate); 
    cacheManager.setDefaultExpiration(600); 
    return cacheManager; 
  } 
   
} 

ok,完成了,其他什么都不用改,是不是很方便?

另外,要緩存的類必須序列化。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 如何實現(xiàn)AES加密

    Java 如何實現(xiàn)AES加密

    這篇文章主要介紹了Java 如何實現(xiàn)AES加密,幫助大家完成對接,完成自身需求,感興趣的朋友可以了解下
    2020-10-10
  • Java中的動態(tài)代理和靜態(tài)代理詳細解析

    Java中的動態(tài)代理和靜態(tài)代理詳細解析

    這篇文章主要介紹了Java中的動態(tài)代理和靜態(tài)代理詳細解析,Java中的代理可以幫助被代理者完成一些前期的準備工作和后期的善后工作,但是核心的業(yè)務(wù)邏輯仍然是由被代理者完成,需要的朋友可以參考下
    2023-11-11
  • mybatis使用pagehelper插件過程詳解

    mybatis使用pagehelper插件過程詳解

    這篇文章主要介紹了mybatis使用pagehelper插件過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Intellij IDEA安裝lombok插件及使用詳解

    Intellij IDEA安裝lombok插件及使用詳解

    今天小編就為大家分享一篇關(guān)于Intellij IDEA安裝lombok插件及使用詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • MyBatis的JdbcType與Oracle、MySql數(shù)據(jù)類型一覽表

    MyBatis的JdbcType與Oracle、MySql數(shù)據(jù)類型一覽表

    這篇文章主要介紹了MyBatis的JdbcType與Oracle、MySql數(shù)據(jù)類型一覽表,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 詳解SpringBoot Starter作用及原理

    詳解SpringBoot Starter作用及原理

    大家都知道基于 SpringBoot 開發(fā)項目可以簡化 Spring 應(yīng)用的搭建以及開發(fā)過程,提高程序員開發(fā)效率,這是由于其“約定大約配置”的策略及其自動裝配的特點,Starter 就是自動裝配的具體實現(xiàn),本文詳細介紹了SpringBoot Starter作用及原理,歡迎大家來閱讀學習
    2023-04-04
  • Java對象初始化順序的使用

    Java對象初始化順序的使用

    本篇文章介紹了,Java對象初始化順序的使用。需要的朋友參考下
    2013-04-04
  • Java后臺生成圖片的完整步驟

    Java后臺生成圖片的完整步驟

    在一些詳情頁面中,可能需要對上傳到服務(wù)器中的圖片生成以縮略圖的形式展示,這篇文章主要給大家介紹了關(guān)于Java后臺生成圖片的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Java順序表實現(xiàn)圖書管理系統(tǒng)

    Java順序表實現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Java順序表實現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java實現(xiàn)斷點續(xù)傳功能的示例代碼

    Java實現(xiàn)斷點續(xù)傳功能的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)網(wǎng)絡(luò)資源的斷點續(xù)傳功能,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的可以了解一下
    2022-10-10

最新評論

化德县| 临西县| 龙川县| 突泉县| 郯城县| 唐海县| 兴海县| 新乡市| 上思县| 沛县| 尼木县| 沈丘县| 都江堰市| 五指山市| 隆尧县| 和林格尔县| 湖南省| 普宁市| 天祝| 杭州市| 游戏| 乌海市| 额尔古纳市| 溧水县| 洛浦县| 徐闻县| 吉林省| 融水| 三穗县| 广丰县| 临江市| 台江县| 鄂尔多斯市| 博客| 庆元县| 泰来县| 罗城| 全椒县| 从化市| 湟源县| 大石桥市|