Spring Boot实战:拦截器
在Spring Boot中创建一个简单的拦截器可以通过以下步骤实现:
- 创建一个拦截器类实现
HandlerInterceptor
接口。 - 重写
preHandle
方法来实现你的业务逻辑。 - 注册拦截器。
以下是一个简单的示例:
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class SimpleInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 在请求处理之前进行调用(Controller方法调用之前)
System.out.println("拦截器:请求处理之前");
// 这里可以添加你的业务逻辑,比如权限校验、日志记录等
// 返回true继续请求,返回false中断请求
return true;
}
}
注册拦截器需要在Spring Boot配置中添加:
import org.springframework.beans.factory.annotation.Autowired;
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 WebConfig implements WebMvcConfigurer {
@Autowired
private SimpleInterceptor simpleInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加拦截器,并设置拦截路径
registry.addInterceptor(simpleInterceptor)
.addPathPatterns("/**"); // 这里可以设置拦截的路径
//.excludePathPatterns("/login", "/error"); // 设置不拦截的路径
}
}
这样,每次请求都会先经过SimpleInterceptor
的preHandle
方法,你可以在这里进行权限校验、日志记录等操作。
评论已关闭