spring-boot 使用HandlerInterceptor攔截器
標(biāo)簽:
SpringBoot
拦截器的使用步骤:
1、编写一个拦截器,实现HandlerInterceptor
接口
2、编写一个类,继承WebMvcConfigurerAdapter
抽象类,将其放入Spring容器中,然后重写addInterceptors()方法,并调用给的参数InterceptorRegistry.addInterceptor()
把自己编写的那个拦截器作为参数加进去。
直接贴代码:
pom.xml加入如下依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
编写一个拦截器,实现HandlerInterceptor
接口
public class MyHandlerInterceptor implements HandlerInterceptor { //在Controller执行之前调用,如果返回false,controller不执行 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("---------preHandle--------"); return true; } //controller执行之后,且页面渲染之前调用 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("---------postHandle--------"); } //页面渲染之后调用,一般用于资源清理操作 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("---------afterCompletion--------"); } }
HandlerInterceptor接口几个抽象方法讲解:
preHandler:在Controller执行之前调用
postHandler:controller执行之后,且页面渲染之前调用
afterCompletion:页面渲染之后调用,一般用于资源清理操作
编写一个类,继承WebMvcConfigurerAdapter抽象类,将其放入Spring容器中,然后重写addInterceptors()方法,并调用给的参数InterceptorRegistry.addInterceptor()把自己编写的那个拦截器作为参数加进去。
//@Component也可以@SpringBootConfigurationpublic class MyWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyHandlerInterceptor()); } }
编写一个Controller接受请求
@RestControllerpublic class WebController { @GetMapping("/login") public String login() { System.out.println("-----login------"); return "login"; } }
springboot启动类
@SpringBootApplicationpublic class BlogApplication { public static void main(String[] args) { SpringApplication.run(BlogApplication.class, args); } }
浏览器访问:http://localhost:8080/login
控制台结果
console result
ok,以上就是spring-boot 使用HandlerInterceptor拦截器的全部内容。有兴趣的读者可以持续关注笔者的springboot系列文章。
作者:八目朱勇铭
链接:https://www.jianshu.com/p/fa312c22dd0b
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)