@CacheResult结合默认接口方法调用

问题描述 投票:0回答:0

哟!

所以我有一个使用 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 代理中发生的事情,其中类内方法调用没有被代理,因此没有缓存/事务发生。

有线索吗?

java caching jakarta-ee hazelcast jcache
© www.soinside.com 2019 - 2024. All rights reserved.