java - 单例还是实例缓存?

标签 java caching singleton ehcache

虽然这个问题主要涉及 EhCache,但它确实适用于一般的缓存框架(和普通的老式缓存)。

EhCache 允许您创建一个单独的 CacheManager 来管理应用程序中的所有 Caches,或者它允许您创建“实例”CacheManager,顾名思义:在整个应用程序中使用多个管理器。

各自的优点/缺点是什么?乍一看,似乎只有一个单一的管理器会更干净。

我能想到的唯一可能的原因是为什么人们需要多个实例管理器是这样一个事实,即 CacheManager 中的所有缓存必须共享相同的配置:相同的大小、使用策略、容量、等等。因此,如果您想要多个缓存,每个缓存的配置都不同,单例 CacheManager 将无法为每个缓存提供不同的缓存配置。

这是确定单例与实例管理器的唯一标准吗?如果不是,还有哪些其他考虑因素?是否有明显的性能成本与之相关?提前致谢!

最佳答案

自动化测试呢?如果您可以在较小的级别上启用/禁用/配置缓存,它可能对单元测试有用吗?只是一个想法。

关于java - 单例还是实例缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607625/

相关文章:

java - Apache POI - 在数据库中读取和存储富文本内容

java - 如何让 Log4j 每天创建新的日志文件?

java - 在带有 Java 的 Selenium 中使用 @Factory 注释后无法运行测试

java - Glassfish 抛出 com.sun.xml.ws.client.ClientTransportException : The server sent HTTP status code 500: Internal Server Error

javascript - AngularJS:如何缓存从 $http 调用返回的 json 数据?

c++ - 用于单例销毁的 atexit : failure case

Android + picasso : changing URL cache expiration

javascript - jQuery 选择器缓存问题

c# - 单例设计模式中的静态构造函数

java - 如何测试 Guice Singleton?