如果我的cacheResolver找不到要使用的缓存,我应该返回什么?

时间:2016-05-03 12:31:14

标签: java caching ehcache

我在使用Spring注释的服务代表上使用EhCache。

在我的@Cacheable注释中,我添加了resolverFactoryName字段,以便在运行时解析我的缓存。

然后我实现CacheableCacheResolver接口,并根据业务规则返回缓存,但有时我没有根据这些规则返回的缓存。

如果我返回null EhCache的lib给了我一个NPE。 当我没有要返回的缓存时,该怎么办?所以应用程序不应该缓存这些值中的任何一个?是否存在"假的"缓存返回?是否有类似NoCacheException的东西?

1 个答案:

答案 0 :(得分:1)

我不认为异常是要走的路,你真的想要返回一个无操作缓存实现。

从您给出的类名称CacheableCacheResolver - 看起来您正在使用ehcache-spring-annotations,它似乎不支持您想要的内容 - 无操作缓存。

请注意,您仍然可以自己处理。

如果您要使用Spring Caching抽象,则可以使用similar system来支持通过org.springframework.cache.support.NoOpCacheManager.NoOpCache的无操作缓存。