我正在尝试在我的java项目中使用ehcache,这对我来说是新的。
现在我使用ehcache检索区域列表,并且我的项目添加了新区域,那时我使用@TriggersRemove功能一次清除缓存然后重新加载它。
例如:我有10个区域并使用ehcache,我再添加一个区域,清除缓存并重新加载。
是避免缓存中数据重新加载的任何其他选项。
我的代码:
@Cacheable(cacheName="retrieveAreas")
public List<AreaBO> retrieveAreas(){
//some code here
}
@TriggersRemove(cacheName="retrieveAreas", removeAll=true)
public long addArea(AreaBO areaBO) throws UserServiceException{
// some codes here
}
答案 0 :(得分:0)
您似乎正在使用EhCache中的注释。如果您从3.1版开始转到Spring提供的缓存注释,那么您的代码将是:
@Cacheable(value="retrieveAreas")
public List<AreaBO> retrieveAreas(){
//some code here
}
@CachePut(value="retrieveAreas")
public long addArea(AreaBO areaBO) throws UserServiceException{
// some codes here
}
您可以看到的差异在于@CachePut注释,该注释将方法的返回值添加到指定的缓存中。 我不知道EHCache中的相应注释