Отключить HTTP-кеш в WebFlux - PullRequest
       9

Отключить HTTP-кеш в WebFlux

0 голосов
/ 19 сентября 2018

В 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 приложении?

1 Ответ

0 голосов
/ 20 сентября 2018

Если вы используете Spring Boot и хотите запретить кэширование статических ресурсов, вы можете добиться этого с помощью следующего свойства конфигурации:

spring.resources.cache.cachecontrol.no-store=true

Если вы хотите отключить кэширование для все , включая REST-вызовы и просмотры и т.д .;затем вы можете реализовать пользовательский WebFilter, который будет делать это, и представить его в виде компонента в вашем приложении:

class NoStoreWebFilter implements WebFilter {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
        exchange.getResponse().getHeaders()
                .setCacheControl(CacheControl.noStore().getHeaderValue());
        return chain.filter(exchange);
    }
}
...