springBoot攔截器

最近用java的springBoot框架開發一個登陸的功能,發現springboot有個頗有意思的功能就是攔截器能能php

其實攔截器就至關於php的構造函數,不對,應該是包含了php的構造函數。java

具體步驟以下:spring

1.註冊構造器

    也就是框架在啓動的時候先要建立一個攔截器api

    新建類而後去繼承WebMvcConfigurerAdapter,而後重寫addInterceptors這個方法,建立攔截器就在這個方法裏面springboot

@Override    
    public void addInterceptors(InterceptorRegistry registry) {    
        //註冊自定義攔截器,添加攔截路徑和排除攔截路徑    
        registry.addInterceptor(new InterceptorConfig()).addPathPatterns("api/path/**").excludePathPatterns("api/path/login");

addInterceptor:建立攔截器對象框架

addPathPatterns:url正則匹配ide

excludePathPatterns:排除的路徑函數

(注意:addInterceptors這個方法所在的類必需要加註釋@Configuration不然是行不通的,網上好多和我相同的方法,都是沒有這個註解)post

2.建立攔截器類,這個類要實現HandlerInterceptor

public class AuthInterceptor implements HandlerInterceptor{

	/**
	 * 進入請求的時候攔截
	 */
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		 Log.info("---------------------開始進入請求地址攔截----------------------------");    
		
		return false;
	}

	/**
	 * 視圖渲染以前攔截
	 */
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		Log.info("---------------------處理請求完成後視圖渲染以前的處理操做----------------------------");   
		
	}

	/**
	 * 視圖渲染以後
	 */
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		Log.info("---------------------視圖渲染以後的操做----------------------------");   
		
	}

}

preHandle:這個方法是url地址剛請求的時候就進這個方法url

postHandle:這個方法是請求的方法執行完了,要渲染頁面了,那個先進這個方法

afterCompletion:這個方法是頁面渲染後觸發這個方法

若是是登陸註冊就用preHandle這個作攔截就能夠了,若是返回true就經過攔截器了,不然不經過

相關文章
相關標籤/搜索