虽然这个问题主要涉及 EhCache,但它确实适用于一般的缓存框架(和普通的老式缓存)。
EhCache 允许您创建一个单独的 CacheManager
来管理应用程序中的所有 Caches
,或者它允许您创建“实例”CacheManager
,顾名思义:在整个应用程序中使用多个管理器。
各自的优点/缺点是什么?乍一看,似乎只有一个单一的管理器会更干净。
我能想到的唯一可能的原因是为什么人们需要多个实例管理器是这样一个事实,即 CacheManager
中的所有缓存必须共享相同的配置:相同的大小、使用策略、容量、等等。因此,如果您想要多个缓存,每个缓存的配置都不同,单例 CacheManager
将无法为每个缓存提供不同的缓存配置。
这是确定单例与实例管理器的唯一标准吗?如果不是,还有哪些其他考虑因素?是否有明显的性能成本与之相关?提前致谢!
最佳答案
自动化测试呢?如果您可以在较小的级别上启用/禁用/配置缓存,它可能对单元测试有用吗?只是一个想法。
关于java - 单例还是实例缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607625/