假設一個用 注釋的業務方法@Cacheable。
@Component
class Some {
@Cacheable
public Some getSome() {
}
}
現在任何呼叫者都可以有條件地請求非快取結果,就好像該方法根本沒有注釋@Cacheable,而不驅逐快取或使用單獨的方法?
void doOther() {
// How can I get non-cached live result from some#getSome()
}
@Autowired
private Some some;
我找到了conditionand unless,但這些不符合我的要求。
uj5u.com熱心網友回復:
@Cacheable通過使用代理來實作快取機制。要忽略快取,您應該將代理解包到真正的目標物件中,并直接呼叫其解包方法:
import org.springframework.aop.framework.AopProxyUtils;
...
@Autowired
private Some some;
void doOther() {
Some unproxied = (Some) AopProxyUtils.getSingletonTarget(some);
Some noncached = unproxied.getSome();
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/450503.html
