关于SpringBoot拦截器拦截静态资源的问题

 更新时间:2023年07月11日 10:45:16   作者:普通网友  
这篇文章主要介绍了关于SpringBoot拦截器拦截静态资源的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot拦截器拦截静态资源

使用springboot2.0+的版本建立拦截器拦截访问时,发现将静态的css/js资源也拦截了。

此时需要在拦截器中配置放行资源。

直接上代码

 //设置拦截,释放静态文件
       registry.addInterceptor(new LoginHandlerInterceptero()).addPathPatterns("/**")
               .excludePathPatterns("/user/login","/login.html","/css/**","/js/**");

放行"/css/**"资源。

有些使用放行static文件夹来放行所有的静态资源,不过SpringBoot默认扫描static包下的静态资源,所以好像不管用。

下图是一次项目中配置的静态资源释放,

对文件结构不是很清楚,所以直接配置释放所有文件。

springboot拦截器为什么拦截静态资源

项目目录结构如下所示

​​

首先是以继承的方式注册拦截器配置

@Configuration
public class SpringMvcSupport_extends extends WebMvcConfigurationSupport {
    @Autowired
    private LoginInterceptor loginInterceptor;
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        //配置拦截器
        registry.addInterceptor(loginInterceptor).
                //对所有的资源进行拦截,包括静态资源
                addPathPatterns("/**")
                .excludePathPatterns("/login.html","/js/**","/css/**","/lib/**");
    }

此时访问静态资源得到如下结果:

这种方式会拦截静态资源我也不知道原因是什么希望后续补坑

但是如果以实现接口的形式来注册拦截器的话就不会拦截静态资源

@Configuration
public class SpringMvcSupport implements WebMvcConfigurer {
 @Autowired
 private LoginInterceptor loginInterceptor;
 @Override
 public void addInterceptors(InterceptorRegistry registry) {
     //配置拦截器
     registry.addInterceptor(loginInterceptor).
             //对所有的资源进行拦截,包括静态资源
             addPathPatterns("/**")
             .excludePathPatterns("/login.html","/js/**","/css/**","/lib/**");
 }

运行项目此时访问静态资源就可以成功访问

这个问题卡了很久很久/(ㄒoㄒ)/~~

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot集成redis并使用redis生成全局唯一索引ID

    springboot集成redis并使用redis生成全局唯一索引ID

    本文主要介绍了springboot集成redis并使用redis生成全局唯一索引ID,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Java的this关键字的使用与方法的重载相关知识

    Java的this关键字的使用与方法的重载相关知识

    这篇文章主要介绍了Java的this关键字的使用与方法的重载相关知识,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • 详解spring security安全防护

    详解spring security安全防护

    这篇文章主要介绍了详解spring security安全防护,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Netty内存池泄漏问题以解决方案

    Netty内存池泄漏问题以解决方案

    这篇文章主要介绍了Netty内存池泄漏问题以解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 分布式系统下调用链追踪技术面试题

    分布式系统下调用链追踪技术面试题

    这篇文章主要为大家介绍了分布式系统下调用链追踪技术面试问题合集,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • Java异常Exception详细讲解

    Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等
    2022-07-07
  • java读取excel文件的两种方法

    java读取excel文件的两种方法

    这篇文章主要为大家详细介绍了java读取excel文件的两种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 求1000阶乘的结果末尾有多少个0

    求1000阶乘的结果末尾有多少个0

    题目是:求1000!的结果末尾有多少个0,解题思路:两个素数2、5,相乘即可得到10,我们可以认为,有多少组2、5,结尾就有多少个0,下面是代码,需要的朋友可以参考下
    2014-02-02
  • 浅谈Spring事务传播行为实战

    浅谈Spring事务传播行为实战

    这篇文章主要介绍了浅谈Spring事务传播行为实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java全面详细讲解逻辑控制的使用

    Java全面详细讲解逻辑控制的使用

    在程序开发的过程之中一共会存在三种程序逻辑:顺序结构、分支结构、循环结构,对于之前所编写的代码大部分都是顺序结构的定义,即:所有的程序将按照定义的代码顺序依次执行,让我们来深入探讨一下
    2022-04-04

最新评论