如何为给定RestController的所有方法禁用缓存

时间:2016-06-23 09:02:20

标签: spring spring-mvc spring-boot

我有2个控制器,WebControllerARestControllerB。我想为RestControllerB的所有方法禁用缓存,并且仅为此控制器禁用缓存。

我试过这个:

@RestController
public class RestControllerB {

    @Autowired
    private RequestMappingHandlerAdapter requestMappingHandlerAdapter;

    @PostConstruct
    public void init() {
        requestMappingHandlerAdapter.setCacheControl(CacheControl.noStore());
    }

    ...
}

这是有效的,但它显然会影响WebControllerARestControllerB,可能是因为RequestMappingHandlerAdapter与它们共享。

我正在为这个问题寻找最简单的解决方案,只需要最少的额外类,而且根本不需要使用RequestMappingHandlerAdapter。但是,我也在寻找类级解决方案,在方法级别设置缓存控制不是一种选择。

我使用没有xml的spring-boot。

编辑:不幸的是,两个控制器都使用相同的URL路径库,因此无法仅按路径过滤响应。

0 个答案:

没有答案