首頁>Club>
9
回覆列表
  • 1 # 寫程式設計師的程式碼

    簡介

    學了springcloud如何操作資料庫進行增刪改查,又學了springcloud如何操作reids把資料儲存到redis。今天結合資料庫操作和reids操作,來看看如何使用SpringCache。SpringCache提供了基於註解的快取配置方法。它本質上不是一個具體的快取實現方案(例如EHCache),而是一個對快取使用的抽象和封裝,透過在已有程式碼中打上幾個預定義的註釋,就可以實現希望達到的快取效果。SpringCache支援跟第三方快取例如EHCache、Redis整合;另外也提供了開箱即用的預設實現,可以直接拿來使用。SpringCache支援使用SpEL(Spring Expression Language)來定義快取的key和各種condition,因此具備相當的靈活性,並可以支援非常複雜的語義。

    SpringCloud用Spring Cache的方式使用Redis快取 pom.xml中引入SpringDataRedis

    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);

    }

    /**

    * @param id

    */

    @CacheEvict(value = "gathering", key = "#gathering.id")

    public void deleteById(String id) {

    gatheringDao.deleteById(id);

    }

  • 中秋節和大豐收的關聯?
  • 一個非常愛笑的人如何變得安靜些?