zoukankan      html  css  js  c++  java
  • SpringBoot中缓存 (Cache) 的运行原理

    缓存运行原理:

    1.自动配置类:CacheAutoConfiguration
    
    2.缓存的配置类:
    
         *   org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.JCacheCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.HazelcastCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.InfinispanCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.CouchbaseCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.CaffeineCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.GuavaCacheConfiguration
         *   org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration【默认】
         *   org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration
    
    
    默认SimpleCacheConfiguration生效
    
    3.给容器注册了一个CacheManager:ConcurrentMapCacheManager
    
    4.获取和创建ConcurrentMapCache类型的缓存组件,它的作用将数据保存在ConcurrentMap中
    
    5.运行流程:
    
    方法运行之前,先去查询Cache(缓存组件),按照cacheNames指定的名字获取,(CacheManager先获取相应的缓存),第一次获取缓存如果没有Cache组件会自动创建
    去Cache中查找缓存的内容,使用一个key,默认就是方法的参数,key是按照某种策略生成的,默认是使用keyGenerator生成的,默认使用SimpleKeyGenerator生成key,SimpleKeyGenerator生成key的默认策略:如果没有参数:key=new SimpleKey();如果有一个参数:key=参数的值;如果有多个参数:key=new SimpleKey(params);
    没有查到缓存就调用目标方法,将目标方法返回的结果,放进缓存中,@Cacheable标注的方法执行之前先来检查缓存中有没有这个数据,默认按照参数的值作为key去查询缓存,如果没有就运行方法并将结果放入缓存,以后再来调用就可以直接使用缓存中的数据。
  • 相关阅读:
    程序设计实习课(0)资源链接
    解决clion2016.3不能支持搜狗输入法的问题
    四元数运动学笔记(5)IMU驱动的运动误差方程
    四元数运动学笔记(4)旋转的雅克比矩阵
    四元数运动学笔记(3)四元数和旋转相关的约定表述
    四元数运动学笔记(2)旋转向量,旋转矩阵和四元数的关系
    单应矩阵,基本矩阵,本质矩阵
    ROS标定IDS相机
    四元数运动学笔记(1)旋转的表示
    IMU Noise Model
  • 原文地址:https://www.cnblogs.com/nineberg/p/12350241.html
Copyright © 2011-2022 走看看