SpringBoot 的拦截器

首先注册我们要有完整的一个可以开始的开发环境

先自己创建一个配置类 InterceptorConfig, 实现springboot自带的拦截器接口 WebMvcConfigurer.

 1 package com.example.demo.TestInterceptor;
 2
 3 import org.springframework.context.annotation.Configuration;
 4 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 5 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 6 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 7
 8
 9 @Configuration
10 public class InterceptorConfig implements WebMvcConfigurer {
11
12
13     @Override //用来注册拦截器,我们自己写好的拦截器需要在这里注册才能生效
14     public void addInterceptors(InterceptorRegistry registry) {
15
16         // addPathPatterns("/**") 表示拦截所有的请求,
17         // excludePathPatterns("/user", "/register") 表示除了登陆与注册之外,因为登陆注册不需要登陆也可以访问
18         registry.addInterceptor(new LogCostInterceptor()).addPathPatterns("/**").excludePathPatterns("/login", "/user");
19     }
20
21     @Override  //用来配置静态资源,如html,js等前端页面资源
22     public void addResourceHandlers(ResourceHandlerRegistry registry) {
23
24     }
25 }


自己写及配置自己的业务需求层面

 1 package com.example.demo.TestInterceptor;
 2
 3 import org.springframework.web.servlet.HandlerInterceptor;
 4 import org.springframework.web.servlet.ModelAndView;
 5
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8
 9
10 public class LogCostInterceptor implements HandlerInterceptor {
11     @Override
12     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
13         System.err.println("preHandle是请求执行(bool)");  //preHandle是请求执行前执行的
14         return true;//如果这里是fale就是不会去执行下面的方法
15        // 在这里可以完全的执行和实现相应的业务 流程,如登入模块等
17     }
18
19     @Override
20     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
21         System.err.println("postHandle是请求执行(void)");  //postHandler是请求结束执行的,但只有preHandle方法返回true的时候才会执行
22     }
23
24     @Override
25     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
26         System.err.println("afterCompletion是请求执行(afterCompletion)");//afterCompletion是视图渲染完成后才执行,同样需要preHandle返回true,该方法通常用于清理资源等工作
27     }
28 }

原文地址:https://www.cnblogs.com/cb1186512739/p/11169363.html

时间: 2024-10-31 08:51:45

SpringBoot 的拦截器的相关文章

springboot+springmvc拦截器做登录拦截

springboot+springmvc拦截器做登录拦截 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration 实现 WebMvcConfigurer 接口,注册拦截器 ResourceBundle 加载 properties文件数据,配置不进行拦截的路径 LoginInterceptor package com.ytkj.smart_sand.system.interceptor; import com.

springboot实现拦截器

你首先需要一个搭建好的springboot项目,具体怎么搭建我还没有相应的随笔可以交给你,可以自己上网上看一下,学习一下,之后我要是总结出来的话,这里面我会通知的 首先这个项目的目录结构是这样子的 首先在Controller里面写上你想要展示的内容 package com.example.springBoot; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web

Idea基于springBoot的拦截器的简单实现

一.创建SpringBoot项目二.配置文件:1.启动文件InterceptortestApplication.java package com.jane.interceptortest; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.

27.Spring-Boot中拦截器中静态资源的处理(踩过坑)以及Spring mvc configuring拓展介绍

一.springboot中对静态资源的处理 默认情况下,springboot提供存放放置静态资源的文件夹: /static /public /resources /META-INF/resources 对于maven项目即就是存在src/main/resources 文件夹下. ? 如图:static文件夹就是springboot中默认的文件夹 在页面中这样写路径<link href="themes/bootstrap.min.css" rel="stylesheet&

springboot集成拦截器

一.首先对HandlerInterceptor进行封装,封装为MappingInterceptor.封装的方法里添加拦截器起作用的路径addPathPatterns(),及需要排除路径的方法excludePathPatterns() public interface MappingInterceptor extends HandlerInterceptor { String[] addPathPatterns(); String[] excludePathPatterns(); int orde

springboot的拦截器中注入redisTemplate为null的解决办法

原因:拦截器加载于IOC之前,所以这个时候注入RedisTemplate时是null 在SpringBoot配置类中做出如下调整,将自定义拦截器也加入到配置中,在拦截器执行的时候实例化拦截器Bean 原文地址:https://www.cnblogs.com/zj-mxcz/p/12422953.html

spring-boot 加入拦截器Interceptor

1.spring boot拦截器默认有 HandlerInterceptorAdapter AbstractHandlerMapping UserRoleAuthorizationInterceptor LocaleChangeInterceptor ThemeChangeInterceptor 2.配置spring mvc的拦截器WebMvcConfigurerAdapter public class WebAppConfig extends WebMvcConfigurerAdapter 3

SpringBoot配置拦截器

[配置步骤] 1.为类添加注解@Configuration,配置拦截器 2.继承WebMvcConfigurerAdapter类 3.重写addInterceptors方法,添加需要拦截的请求 @Configuration public class WebMvcConfigurer extends WebMvcConfigurerAdapter{ @Override public void addInterceptors(InterceptorRegistry registry) { //表示拦

SpringBoot的拦截器中依赖注入报空指针问题

原因:拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null : 解决方法:配置拦截器链的类中先注入这个拦截器,示例: @Configuration public class WebConfig extends WebMvcConfigurerAdapter { //注入拦截器类 @Bean public LocaleInterceptor localeInterceptor  () { return new LocaleInterceptor(); } publi