在Spring Boot MVC
应用中,我通过以下方式禁用HTTP缓存:
WebContentInterceptor cacheInterceptor = new WebContentInterceptor();
cacheInterceptor.setCacheSeconds(0);
cacheInterceptor.setUseExpiresHeader(true);
cacheInterceptor.setUseCacheControlHeader(true);
cacheInterceptor.setUseCacheControlNoStore(true);
registry.addInterceptor(cacheInterceptor);
如何在Spring Boot WebFlux
应用中进行操作?
答案 0 :(得分:2)
如果您使用的是Spring Boot,并且希望避免缓存静态资源,则可以使用以下配置属性来实现:
spring.resources.cache.cachecontrol.no-store=true
如果您想禁用所有内容的缓存,包括REST调用和视图等;那么您可以实现一个自定义WebFilter
来执行此操作,并将其作为Bean公开在您的应用程序中:
class NoStoreWebFilter implements WebFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
exchange.getResponse().getHeaders()
.setCacheControl(CacheControl.noStore().getHeaderValue());
return chain.filter(exchange);
}
}