3
  • 我可以在 RestController 中的方法之上使用 Spring 缓存注释吗?
  • 由于弹簧缓存是服务级别缓存,但我有一个案例没有服务,所以我在控制器中使用缓存。
  • 在控制器中使用缓存是否好?
  • 我使用咖啡因作为我的底层缓存。
  • 我认为在控制器级别使用这种缓存可能会发生任何多线程问题。
4

1 回答 1

3

我不会在涉及用户身份验证的弹簧控制器中使用可缓存(“某物”),因为可缓存仅保留参数。但是,如果您不需要根据用户或任何请求标头信息进行缓存,我认为没有任何问题。

例如,在以下示例中,当您让用户重新登录时:

        @RequestMapping(...)
        @Cacheable("something")
        public T analyze(@RequestParam(value = "text") String text) {
        ....
           Object userObj = 
       SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        ....
        }

如果您想根据标头进行缓存,您可能有一个选项是在控制器方法中添加@RequestHeader(value="key") String val

于 2017-08-17T09:11:59.687 回答