栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Spring Boot中启用HTTP响应缓存

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Spring Boot中启用HTTP响应缓存

事实证明,Spring Security设置了无缓存HTTP标头。

以下内容禁用了HTTP响应标头

Pragma: no-cache
,但不能解决该问题:

import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity;@Configuration@EnableWebMvcSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter {    @Override    protected void configure(HttpSecurity http) throws Exception {        // Prevent the HTTP response header of "Pragma: no-cache".        http.headers().cacheControl().disable();    }}

我最终完全为公共静态资源禁用了Spring Security,如下所示(与上述相同):

@Overridepublic void configure(WebSecurity web) throws Exception {    web.ignoring().antMatchers("/static/public/**");}

这需要配置两个资源处理程序以正确获取缓存控制标头:

@Configurationpublic class MvcConfigurer extends WebMvcConfigurerAdapter        implements EmbeddedServletContainerCustomizer {    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        // Resources without Spring Security. No cache control response headers.        registry.addResourceHandler("/static/public/**") .addResourceLocations("classpath:/static/public/");        // Resources controlled by Spring Security, which        // adds "Cache-Control: must-revalidate".        registry.addResourceHandler("/static/**") .addResourceLocations("classpath:/static/") .setCachePeriod(3600*24);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441968.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号