1

我正在尝试使用 ehcache 缓存。对于两个不同的用户,我的 web 服务创建了不同的缓存,就像会话一样。我可以创建与上下文概念相同的单个缓存吗

4

1 回答 1

1

在实例化 EhCache CacheManager 时(这是获取 Cache 对象引用的第一步),每个 EhCache API 都有几个选项:

  1. “传统”对象构造函数:new CacheManager()。正如 API 页面中所解释的,“此方法不充当单例。调用者必须维护自己对它的引用。”
  2. 静态构造函数:CacheManager.create()。此创建方法确实充当单例,这意味着您可以为每个请求或会话调用 CacheManager.create() ......并且它将始终返回相同的 CacheManager。

由于您没有提供有关您的实现的任何细节,我只能假设您正在(有意或无意)创建一个新的 CacheManager 对象(http://ehcache.org/apidocs/net/sf/ehcache/CacheManager.html)每个服务请求或会话...这将解释您注意到的行为。

如果您使用单例概念来创建 CacheManager(方法 2),您确实会创建一个 CacheManager + 获取对可以跨线程访问的 Cache 对象的单个引用(请求、会话等......)

于 2013-07-15T17:26:08.843 回答