哟!
所以我有一个使用 jCache 抽象的 Java EE WebApp。鉴于我有这样的界面:
public interface Service {
default ReturnObject getReturnObject(String userId) {
return getReturnObject(userId, null);
}
ReturnObject getReturnObject(String userId, String customerId);
}
...及其实现如下:
public class ServiceImpl {
@Override
@CacheResult(cacheName = CACHE_NAME, cacheKeyGenerator = DefaultObjectsCacheKeyGenerator.class)
public ReturnObject getReturnObject(@CacheKey String userId, @CacheKey String customerId) {
...
}
}
我能否期望缓存功能正常工作,即当使用一个参数调用默认方法时,缓存将以
null
作为缓存键的后半部分启动?我担心类似于 Spring 代理中发生的事情,其中类内方法调用没有被代理,因此没有缓存/事务发生。
有线索吗?