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

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

  • 相关阅读:
    c# 扩展方法奇思妙用高级篇八:Type类扩展
    Asp.Net 上传大文件专题
    波形捕捉:(2)创建捕捉设备对象
    Capturing Waveforms【译】
    波形捕捉:(1)枚举"捕捉设备"
    C# 调用sql 2000存储过程
    HTTP请求流程(一)流程简介
    Asp.Net 上传大文件专题(4)利用ajax技术显示上传进度
    c# GDI+简单绘图(四)
    波形捕捉:(5)“捕捉缓冲区”信息
  • 原文地址:https://www.cnblogs.com/jimisun/p/9928719.html
Copyright © 2011-2022 走看看