2011-12-19 101 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