2

基本上,是否可以这样做:

@Cacheable(cacheName="default")
@RequestMapping("getContent/{name}")
public String getContentByNameHandler(@PathVariable String name, Model model) {

    ContentService contentService = domainService.getContentService();

    model.addAttribute("model",contentService.getContentByName(name));

    return RESOURCE_FOLDER + "content";
}

当我尝试这个时,视图被缓存,但是从缓存中返回的只是jsp的纯内容,而不是简单的jsp视图渲染逻辑完成后的jsp视图。我在 spring 3.0.7,所以仍然使用 ehcache-spring-annotations (http://code.google.com/p/ehcache-spring-annotations)

4

1 回答 1

1

@Cacheable通过简单地基于所有输入参数形成一个键并将返回值放在该键下来工作。

所以它不会存储已处理的视图 - 它只会存储视图名称。

通常,您会为此使用浏览器缓存而不是服务器端缓存。而且由于渲染视图应该比生成内容消耗更少,因此您将@Cacheable使用 service 方法。

于 2012-05-01T22:06:46.587 回答