【发布时间】:2014-05-19 03:44:41
【问题描述】:
我对使用 @Cacheable 批注相当陌生。我对我的实施方式有疑问。
在我的应用程序中,我有以下...
public class LovCodeDaoImpl extends AbstractDao implements LovDao {
private static final String CODE_LOV_SQL =
" SELECT " +
" code, " +
" code_desc value" +
" FROM repman.code_detail " +
" WHERE code_type=? " +
" ORDER BY code_seq ";
@Cacheable(value = "lovs", key = "#code")
public Map<String, String> getLov(String code) {
Map<String, String> codes =
(Map<String, String>) getJdbcTemplate()
.query(
CODE_LOV_SQL
,new Object[]{code}
,new LovMapExtractor());
return codes;
}
}
我们用来从数据库中检索许多不同的值列表的方法。例如,从我的代码中的不同位置使用 AA 或 BB 或 CC 调用此方法。我想要实现的是将每个不同的地图存储在不同键下的缓存中。
所以我的问题是,每当我传入不同的键时,Spring 会将 Map 存储在不同的缓存中吗?还是每次都会覆盖相同的缓存?如果它没有按我的意愿工作,我该怎么做才能让它按我想要的方式工作。
感谢您的帮助。
【问题讨论】:
标签: spring spring-mvc caching