spring的三级缓存的map是什么结构的
时间: 2023-06-18 16:08:00 浏览: 163
springMybatis+redis三级缓存框架
4星 · 用户满意度95%
Spring的三级缓存中,第二级缓存是通过一个ConcurrentMap来实现的,而第三级缓存是通过一个ConcurrentHashMap来实现的。这两个Map都是线程安全的。
其中,第二级缓存的ConcurrentMap是在每个缓存的BeanFactory中维护的,用于缓存已经解析好的BeanDefinition对象。而第三级缓存的ConcurrentHashMap是在整个Spring容器中共享的,用于缓存已经实例化好的Bean对象。
值得注意的是,第三级缓存的ConcurrentHashMap并不是在Spring的BeanFactory中维护的,而是在AbstractApplicationContext中维护的。这意味着,如果一个BeanFactory被多个ApplicationContext共享,那么它们将共享同一个第三级缓存。
阅读全文