• 拦截器的使用

    1注册一个拦截器

    @Configuration
    public class WebMvcConfig extends WebMvcConfigurerAdapter {
    
      //注册一个拦截器
      @Autowired
      AuthInterceptor authInterceptor;
    
      @Override
      public void addInterceptors(InterceptorRegistry registry) {
          registry.addInterceptor(authInterceptor).addPathPatterns("/**");
      }
    }

    2编写拦截器逻辑

    @Component
    public class AuthInterceptor extends HandlerInterceptorAdapter {
      @Override
      public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
              throws Exception {
           //....
    }
  • 注解的使用

    1编写一个注解

    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)    // source  : override    class    runtime
    public @interface LoginRequire {
    
      boolean autoRedirect() default true;
    }

    2在拦截器中获取该路由的注解,并添加业务逻辑

    @Component
    public class AuthInterceptor extends HandlerInterceptorAdapter {
      @Override
      public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
              throws Exception {
           //....
    }
        //判断是否该请求需要用户登录
          //取到请求的方法上的注解  LoginRequire
          HandlerMethod handlerMethod = (HandlerMethod) handler;
          LoginRequire loginRequire = handlerMethod.getMethodAnnotation(LoginRequire.class);
          if(loginRequire!=null){
          //
          }else{
          //