zoukankan      html  css  js  c++  java
  • 善用缓存提高你的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);
    

    本章完整工程实例代码下载地址:完整项目演示工程点击下载

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/jimisun/p/9928719.html
Copyright © 2011-2022 走看看