这篇文章主要介绍“在springboot中怎么使用拦截器”,在日常操作中,相信很多人在在springboot中怎么使用拦截器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在springboot中怎么使用拦截器”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
拦截器Interceptor,是SpringMVC中的核心内容,利用spring的AOP(Aspect Oriented Programming, 面向切面编程)特性,可以很方便的对用户的业务代码进行横向抽取,根据具体业务需求对应用功能进行增强。
在SpringBoot中使用Interceptor,同时采用全注解开发,涉及到以下接口和类:
HandlerInterceptor:处理器拦截器,handler就是处理器,在springboot web开发中,由控制器来处理web请求,因此handler具体指控制器
使用全注解开发,通过@Configuration注解,让一个java对象主任到IOC容器,并作为配置对象,这里的JavaConfig类相当于一个xml配置文件;
在以前的xml配置中
(1)通过引入一些标签进行配置,在JavaConfig中,通过继承一个类或者实现一个接口来实现配置,这里所继承的类、所实现的接口就相当于引入的标签;
(3)通过设置所引入标签的属性和值,可以实现个性化配置,在JavaConfig中通过覆盖类或者接口的方法来实现个性化配置。
下面通过一个案例来实现自定义拦截器
拦截/user/开头的请求,不拦截/usr/login请求
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 { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("执行了logininterceptor的preHandle方法"); return true; } }
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; @Configuration public class MyAppCofnig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { LoginInterceptor loginInterceptor = new LoginInterceptor(); String[] path = {"/user/**"}; String[] excludePath = {"/user/login"}; registry.addInterceptor(loginInterceptor).addPathPatterns(path).excludePathPatterns(excludePath); } }
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; @Controller public class BootController { @RequestMapping("/user/account") @ResponseBody public String userAccount(){ return "/user/account"; } @RequestMapping("/user/login") @ResponseBody public String userLogin(){ return "/user/login"; } }
到此,关于“在springboot中怎么使用拦截器”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。