否沒有並行評估,所述@Cacheable
註解越來越gathered in the order of definition按照鏈接的代碼(可高速緩存屬性是一個數組畢竟)。意識到您正在使用不同的名稱和條件定義3個獨立的緩存很重要。
因爲我不知道在這裏你的使用情況是Spring Caching Guide稍做修改:
//..
@Override
@Caching(cacheable = {
@Cacheable(cacheNames = "sth"),
@Cacheable(cacheNames="everythingelse")
})
public Book getByIsbn(String isbn) {
simulateSlowService();
return new Book(isbn, "Some book");
}
//..
,並通過在高速緩存包中的春天啓動的application.properties
定義DEBUG
級別:
logging.level.org.springframework.cache=DEBUG
您可以看到它是如何作爲獨立的緩存加載的:
2016-11-29 00:52:26.472 DEBUG 23426 --- [ main] o.s.c.a.AnnotationCacheOperationSource : Adding cacheable method 'getByIsbn' with attribute: [Builder[public hello.Book hello.SimpleBookRepository.getByIsbn(java.lang.String)] caches=[sth] | key='' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false', Builder[public hello.Book hello.SimpleBookRepository.getByIsbn(java.lang.String)] caches=[everythingelse] | key='' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false']