SPRINGBOOT 2.X 拦截器使用方式

xiaoxiao2025-04-13  20

SPRINGBOOT 2.X 拦截器使用及静态资源配置

这里使用的是springboot的2.X版本拦截器,和2.0之前的稍微不同,WebMvcConfigurerAdapter被deprecated(不赞成使用),虽然继承WebMvcConfigurerAdapter这个类虽然有此便利,但在Spring5.0里面已经deprecated了,所以这里实现WebMvcConfigurer 接口。

实现方法

实现一个HandlerInterceptor接口的类并打上注解@Component,并配置好拦截的内容 @Component public class CheckLoginInteceptor implements HandlerInterceptor { //log日志 Logger log=LoggerFactory.getLogger(CheckLoginInteceptor.class); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession httpSession=request.getSession(); //这个是自己定义的用户实体类 ContractorUser contractorUser=new ContractorUser(); //在session中取出用户数据 contractorUser= (ContractorUser) httpSession.getAttribute("user"); if (contractorUser==null){ log.warn("未登录!"); //未登录或者session过期在这里执行跳转登录页面 response.sendRedirect("/login"); return false; } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } } 实现一个 WebMvcConfigurer 接口并打上注解@Configuration把实现HandlerInterceptor的拦截器添加到实现的WebMvcConfigurer的类

这里的addResourceLocations可以把文件映射到本地的绝对路径

@Configuration public class WebAppConfig implements WebMvcConfigurer { @Autowired private CheckLoginInteceptor checkLoginInteceptor; //配置拦截的资源以及放行的资源 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(checkLoginInteceptor) .addPathPatterns("/**") .excludePathPatterns("/login") //放行静态资源 .excludePathPatterns("/img/**","/css/**","/fonts/**","/js/**"); } //配置静态资源的位置 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { } } 前端显示的资源路径 <script src="/js/jquery.min.js "></script> 到这里就完成了,有问题留言,有空就帮你回答 

注意:

SpringBoot的默认静态资源的路径为:(此路径可在源码查看到)

classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/

优先级顺序为:META-INF/resources > resources > static > public

我们可以通过修改spring.mvc.static-path-pattern来修改默认的映射(我这里没有配置,使用默认的配置)

转载请注明原文地址: https://www.6miu.com/read-5028160.html

最新回复(0)