善用緩存提升你的Spring工程效率

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

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

咱們通常在Spring項目中使用緩存功能咱們須要對Spring項目進行一些相關的配置,流程以下git

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

啓用對緩存的支持

JavaConfig配置啓用github

@Configuration
@EnableCaching
public class SpringCacheConfig {

}

XML配置啓用spring

<!--啓用緩存-->
    <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);

使用示例:保存緩存code

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

使用示例:移除緩存

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

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

相關文章
相關標籤/搜索