善用緩存提高你的SPRING工程效率

歡迎查看Java開發之上帝之眼系列教程,如果您正在爲Java後端龐大的體系所困擾,如果您正在爲各種繁出不窮的技術和各種框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各種後端技術在你心中模塊化;讓你在工作中能將Java各個技術瞭然於心;能夠即插即用。本章我們來一起了解Spring工程中緩存的使用。

緩存可以存儲常用到的信息,每次需要的時候我們都可以從緩存中獲取,本章我們一起來進行了解Spring的緩存抽象.儘管Spring沒有提供任何的緩存的實現,但是它對緩存功能提供了聲明式的支持,能夠與多種流行的緩存進行集成

我們一般在Spring項目中使用緩存功能我們需要對Spring項目進行一些相關的配置,流程如下

  1. 啓用對緩存的支持
  2. 配置緩存管理器
  3. 應用緩存

啓用對緩存的支持

JavaConfig配置啓用

@Configuration
@EnableCaching
public class SpringCacheConfig {

}

XML配置啓用


    <!--啓用緩存-->
    <cache:annotation-driven/>

配置緩存管理器

在Sring中我們可以使用很多的緩存管理器的實現
  • ConcurrentMapCacheManager
  • SimpleCacheManager
  • NoOpCacheManager
  • CompositeCacheManager
  • EhCacheCacheManager
  • RedisCacheManager
  • GemfireCacheManager
  • ...

JavaConfig配置緩存管理器

    @Bean
    public CacheManager cacheManager() {
        return new ConcurrentMapCacheManager();
    }

XML配置緩存管理器

    <!--聲明緩存管理器-->
    <bean id="cacheManager" class="org.springframework.cache.concurrent.ConcurrentMapCacheManager"/>

應用緩存

我們經常在項目中使用註解作用在方法上,使其應用緩存,常見的註解如下

註解 描述
@Cacheable 先查緩存,如果緩存沒有調用方法,將返回值放入緩存中
@CachePut 始終都會將返回值放入緩存中
@CacheEvict 在緩存中清除一個或者多個條目
@Caching 分組的註解,能夠同時應用多個其他的緩存註解

使用示例:查詢緩存

    @Cacheable(value = "UserCache", key = "#root.args[0]")
    User getUser(String username);

使用示例:保存緩存

    @CachePut(value = "UserCache", key = "#result.username")
    User save(User user);

使用示例:移除緩存

    @CacheEvict("UserCache")
    void remove(String username);

本章完整工程實例代碼下載地址:完整項目演示工程點擊下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章