- 首先我们要知道springboot静态资源默认映射的路径是 /src/main/resources/static 等于 classpath:resources/static
2.为什么要更改默认映射路径(为后面拦截器统一拦截做准备)
A. 如何更改默认映射路径
我们在application.properties配置文件新增配置
spring.mvc.static-path-pattern=/res/**
等号后面就是静态资源可以访问的文件目录
它实际就是classpath:resources/res
准备工作做好之后开始进入正题springboot拦截器的创建和使用步骤*
- 第一步: 我们需要实现HandlerInterceptor接口(他有3个方法)
preHandle() 方法概述:方法执行前会被调用 方法返回值是Boolean类型
返回true就放行,其实底层调用了filterChain.doFilter(),false就拦截
postHandle() 方法概述:目标方法执行完但是还没有到达下一个页面所执行的方法(一般用于存放数据等等)
afterCompletion() 方法概述: 当我们这个页面渲染完之后执行这个方法
根据需要在对应的方法写入条件常用是在preHandle() 方法执行前调用,
比如我们的登录功能,需要验证用户是否登录就可以使用;
2 第二步:把这些配置类放在容器中
配置完就可以了,
@Configuration
public class WebConFig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TestLoginInterceptor()) //这里写你配置的类
.addPathPatterns("/**") //拦截的地址,一般系统页面都很多,都是直接拦截所有,也可以单独拦截某一页面,比如单独拦截首页 "/index"
// .excludePathPatterns("/css/**","/","/js/**","/images/**","/fonts/**");
.excludePathPatterns("/","/ind","/res/**"); 想要放行的页面和静态资源就在这里添加即可
}
}
ok,到这里就分享完了!有不懂的欢迎留言!