Spring Boot 實現自定義攔截器

1.創建一個類實現 HandlerInterceptor 接口,重寫接口的方法,添加@Component 註解,這個註解是爲後面的使用時進行注入。例:

package com.donlex.mybatiswithspringboot.component;

import com.donlex.mybatiswithspringboot.model.User;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Component
public class Userhandle implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        //方法執行之前調用攔截
        System.out.println("攔截成功");
		//這裏寫攔截之後的處理
        return true;
    }
    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }
    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

2.在入口類的目錄或者兄弟目錄下創建一個類繼承 WebMvcConfigurerAdapter類並重寫 addInterceptors 方法;
在該類上方添加註解@SpringBootConfiguration,該 註解表明這是一個配置類

package com.donlex.mybatiswithspringboot.config;
import com.donlex.mybatiswithspringboot.component.Userhandle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@SpringBootConfiguration //添加配置類註解
public class UserLoginConfig extends WebMvcConfigurerAdapter {
    @Autowired
    private Userhandle userhandle;
    @Override
    public void addInterceptors(InterceptorRegistry interceptorRegistry) {
        interceptorRegistry.addInterceptor(userhandle).addPathPatterns("/**");
    }
}

3.項目結構如下:
注意新創建的兩個包跟啓動類是在同一級的
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章