拦截器
如果我们要用拦截器,拦截某个接口需要校验,还需要再拦截器方法写上/admin/** 等等,这样代码不可维护,不可扩展
我们可以使用注解来指定这个接口是否要拦截,使用到Spring的InitializingBean,再系统启动的时候通过注解拿到需要拦截的接口路径,代码编写一下
注解编写
@Target(TYPE)
@Retention(RUNTIME)
public @interface Interceptor {
}
接口层编写
@Interceptor
@RestController
@RequestMapping("/admin")
public class AdminController {
}
拦截器编写
public class AdminInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object admin = request.getSession().getAttribute("admin");
// session是空的 直接跳转登录
if (adminLogin == null) {
return false;
}
return true;
}
@Override