• SpringBoot 缓存工作原理


    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.SimpleCacheConfiguration
    org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration

    3. 默认生效的是SimpleCacheConfiguration

    @Configuration(proxyBeanMethods = false)
    @ConditionalOnMissingBean(CacheManager.class)
    @Conditional(CacheCondition.class)
    class SimpleCacheConfiguration {
    
        @Bean
        ConcurrentMapCacheManager cacheManager(CacheProperties cacheProperties,
                CacheManagerCustomizers cacheManagerCustomizers) {
            ConcurrentMapCacheManager cacheManager = new ConcurrentMapCacheManager();
            List<String> cacheNames = cacheProperties.getCacheNames();
            if (!cacheNames.isEmpty()) {
                cacheManager.setCacheNames(cacheNames);
            }
            return cacheManagerCustomizers.customize(cacheManager);
        }
    
    }

    4. 给容器中注册了一个CacheManager:ConcurrentMapCacheManager 

    5. 可以获取和创建ConcurrentMapCache类型的缓存组件:将数据保存在ConcurrentMap中

  • 相关阅读:
    理性与感性
    JVM系列(之class文件)
    Java集合框架
    Java字符串连接的几种方式
    JVM系列(之ClassLoader)
    时之终结
    约束中的存在
    拿什么爱你?我的数学
    梦的表征、抽象的思维
    Spider with R
  • 原文地址:https://www.cnblogs.com/luo-jian/p/12923661.html
Copyright © 2020-2023  润新知