我有一个单例类(@Service 注释)。这个类有一个需要 200/300ms 执行的方法。
此方法使用 @Cacheable 注释并同步。
@Cacheable(value="nextPlaying", key = "#startingFrom.getYear() + #startingFrom.getMonth() + #startingFrom.getDay() + #startingFrom.getHours() + #startingFrom.getMinutes() + #locale.getLanguage()")
public synchronized List<Match> getNextPlaying(Date startingFrom, Locale locale)
通过启动多个调用此方法的线程,我看到对于这 200/300 毫秒,直到结果未被缓存,它会一次又一次地执行该方法,直到被缓存。似乎@Cacheable 注释没有考虑同步......这是一个错误吗?