2011-12-19 34 views
0

我想試試Spring 3.1 Cache Abstraction,用@Cachable註解一些方法。這對沒有參數的方法來說工作得很好。對於帶有參數的方法,它不會。在文檔中找不到任何內容(http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/cache.html)。Spring @Cachable:不能使用參數方法

任何人遇到同樣的事情?

方法調用:

@Cachable("countries") 
public List<ConfigEntity> findCountries(Locale locale) { 
    ConfigSearchDescription desc = new ConfigSearchDescription(); 
    // ... 
    return findConfigs(desc); 
} 

感謝 強尼

+0

它工作得很好,證明你的代碼,請 – 2011-12-19 09:28:48

+0

感謝您的快速反應。它直接轉到了文檔的示例代碼。方法調用: ' @Cachable( 「國家」) 公開名單 findCountries(區域設置區域) { \t ConfigSearchDescription DESC =新ConfigSearchDescription(); \t // ... return findConfigs(desc); } ' – user871611 2011-12-19 09:41:30

+0

對不起,格式化。 – user871611 2011-12-19 09:42:05

回答

4

你叫從同一個bean的另一種方法,這種方法嗎? 請記住,在這種情況下,代理通常不能攔截這些 調用。

這是我的錯。

感謝所有您的幫助
強尼

+0

這花了我5個小時才知道。我想這裏唯一的解決方案是檢查緩存的鍵是否存在於同一個方法中,並返回值作爲附加檢查。 – Jayz 2015-03-13 10:27:15