Spring4 中的控制器缓存不起作用
Controller cache in Spring4 is not working
当我编写以下代码时,缓存不起作用
@Cacheable("books")
@RequestMapping(method = RequestMethod.GET)
public String list(Model model) {
System.out.println("Retrieving products");
model.addAttribute("products", productDao.list());
return "products/list";
}
但是如果我写下面的缓存工作
@Cacheable("books")
@RequestMapping(method = RequestMethod.GET)
public ModelAndView list() {
ModelAndView modelAndView = new ModelAndView("products/list");
System.out.println("Retrieving products");
modelAndView.addObject("products", productDao.list());
return modelAndView;
}
谁能告诉我为什么第一个代码没有缓存?
我想我找到了答案。
由于参数的原因,每次调用时对象可能不同,因此大多数情况下值将不相等。
因此,缓存会将其理解为不同的请求,不会带上缓存的值。
当我编写以下代码时,缓存不起作用
@Cacheable("books")
@RequestMapping(method = RequestMethod.GET)
public String list(Model model) {
System.out.println("Retrieving products");
model.addAttribute("products", productDao.list());
return "products/list";
}
但是如果我写下面的缓存工作
@Cacheable("books")
@RequestMapping(method = RequestMethod.GET)
public ModelAndView list() {
ModelAndView modelAndView = new ModelAndView("products/list");
System.out.println("Retrieving products");
modelAndView.addObject("products", productDao.list());
return modelAndView;
}
谁能告诉我为什么第一个代码没有缓存?
我想我找到了答案。 由于参数的原因,每次调用时对象可能不同,因此大多数情况下值将不相等。
因此,缓存会将其理解为不同的请求,不会带上缓存的值。