我有一个这样的ehcache xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<defaultCache eternal="true" maxElementsInMemory="100" overflowToDisk="false" />
<cache name="oddscache"
maxElementsInMemory="1000"
timeToIdleSeconds="5"
timeToLiveSeconds="5"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU" />
</ehcache>
</xml>
和我的方法:
@Override
@Cacheable("oddscache")
public void cacheOdds(String id) {
String url = "https://api.betsapi.com/v1/bet365/start_sp?token="+ token +"&FI="+id;
System.err.println("This method is executed !!");
String val = restTemplate.getForObject(url, String.class);
System.err.println(val);
当然,该方法将执行一次,随后的调用将仅从缓存中返回值。但是似乎在缓存过期后(在这种情况下为5秒),该方法仍然没有执行,只是从缓存中返回值。