我有一个单例类(@Service annotated).该类有一个需要200 / 300ms才能执行的方法.
此方法使用@Cacheable和synchronized进行注释.
@Cacheable(value="nextPlaying",key = "#startingFrom.getYear() + #startingFrom.getMonth() + #startingFrom.getDay() + #startingFrom.getHours() + #startingFrom.getMinutes() + #locale.getLanguage()")
public synchronized List
通过启动调用此方法的多个线程,我看到对于这些200 / 300ms,直到结果未缓存,它会一次又一次地执行该方法,直到缓存为止.
似乎@Cacheable注释没有考虑到同步…
这是一个错误吗?
最佳答案