在springboot中使用拦截器的步骤详解
目录
- 在springboot中使用拦截器
- 1. 定义拦截器
- 2. 使用JavaConfig注册拦截器
- 3. 定义控制器,测试拦截器
- 4. 总结
在springboot中使用拦截器 拦截器Interceptor,是SpringMVC中的核心内容,利用spring的AOP(Aspect Oriented Programming, 面向切面编程)特性,可以很方便的对用户的业务代码进行横向抽取,根据具体业务需求对应用功能进行增强。
在SpringBoot中使用Interceptor,同时采用全注解开发,涉及到以下接口和类:
- HandlerInterceptor:处理器拦截器,handler就是处理器,在springboot web开发中,由控制器来处理web请求,因此handler具体指控制器
- 使用全注解开发,通过@Configuration注解,让一个java对象主任到IOC容器,并作为配置对象,这里的JavaConfig类相当于一个xml配置文件;
- 在以前的xml配置中
(3)通过设置所引入标签的属性和值,可以实现个性化配置,在JavaConfig中通过覆盖类或者接口的方法来实现个性化配置。
下面通过一个案例来实现自定义拦截器
拦截/user/开头的请求,不拦截/usr/login请求
1. 定义拦截器
package cn.eis220.web; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("执行了logininterceptor的preHandle方法"); return true; }}
2. 使用JavaConfig注册拦截器
java配置类相当于xml配置文件
xml中通过引入interceptor标签来进行配置,java配置类通过实现WebMvcController进行配置;
xml中通过修改标签的属性和值来个性化配置,java配置类通过实现WebMvcController的方法进行个性化配置
package cn.eis220.config; import cn.eis220.web.LoginInterceptor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configurationpublic class MyAppCofnig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {LoginInterceptor loginInterceptor = new LoginInterceptor(); String[] path = {"/user/**"}; String[] excludePath = {"/user/login"}; registry.addInterceptor(loginInterceptor).addPathPatterns(path).excludePathPatterns(excludePath); }}
3. 定义控制器,测试拦截器
package cn.eis220.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controllerpublic class BootController {@RequestMapping("/user/account")@ResponseBodypublic String userAccount(){return "/user/account"; }@RequestMapping("/user/login")@ResponseBodypublic String userLogin(){return "/user/login"; }}
4. 总结
步骤:
- 如何定义自己的拦截器:
- 如何注册拦截器:
到此这篇关于在springboot中使用拦截器的文章就介绍到这了,更多相关springboot使用拦截器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- springboot如何使用thymeleaf完成页面缓存
- SpringBoot带你实现一个点餐小程序
- pandas中的Timestamp只保留日期不显示时间
- 投稿|新旧造车势力抢滩购物中心
- 如若你懂
- 关于产品|关于产品 | 要怎么进行产品规划()
- 分享10个超级实用事半功倍的Python自动化脚本
- 我若离去,后会无期
- 冷风快报
- 马云与丰臣秀吉