在springboot中使用拦截器的步骤详解

网友投稿 313 2022-11-08

在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配置中

(1)通过引入一些标签进行配置,在JavaConfig中,通过继承一个类或者实现一个接口来实现配置,这里所继承的类、所实现的接口就相当于引入的标签;(3)通过设置所引入标签的属性和值,可以实现个性化配置,在JavaConfig中通过覆盖类或者接口的方法来实现个性化配置。

下面通过一个案例来实现自定义拦截器拦截/user/开头的请求,不拦截/usr/login请求

1. 定义拦截器

package cn.eis220.web;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlcRVJnZqyhyet.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;

}

}

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;

@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);

}

}

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;

@Controller

public class BootController {

@RequestMapping("/user/account")

@ResponseBody

public String userAccount(){

return "/user/account";

}

@RequestMapping("/user/login")

@ResponseBody

public String userLogin(){

return "/user/login";

}

}

4. 总结

步骤:

如何定义自己的拦截器:

实现HandlerInterceptor接口的方法,来自定义拦截器

如何注册拦截器:

JavaConfig配置类实现WebMvcConfigurer接口的addInterceptor方法来注册拦截器

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:计算n!函数递归调用
下一篇:JTAG接口如何连接_JTAG接口连接方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~