1、
@autowired自動裝配:
對類成員變量、方法、構造函數進行标注,完成自動裝配。
消除set、get方法,在IoC容器中查找對應類型的bean裝配
2、
使用裝配好的authorizationIntercetor
addPathPatterns("/pro/**")是/pro目錄下的任何連結都要進入authorizationIntercetor執行。
excludePathPatterns(excludeUrl)是除了這個清單中的路徑無需進入權限攔截器執行
package com.pro.interceptorsconfig;
import java.util.LinkedList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import com.pro.sign.interceptors.AuthorizationInterceptor;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
/*autowired自動裝配;對類成員變量、方法、構造函數進行标注,完成自動裝配。
* 消除set、get方法,在IoC容器中查找對應類型的bean裝配
* 權限攔截sign-rest中的interceptor中*/
@Autowired
private AuthorizationInterceptor authorizationInterceptor;
/*使用模闆字元串替換進行指派
* resource/application.yml 中擷取響應的數值,實作最少的代碼改動量
* */
@Value("${proconfig.is-open-authorization-interceptor}")
private boolean isOpenAuthorizationInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
if (isOpenAuthorizationInterceptor) {
/*設定一個清單,用來存放不需要攔截的路徑*/
LinkedList<String> excludeUrl = new LinkedList<>();
excludeUrl.add("/pro/login");
excludeUrl.add("/pro/register");
excludeUrl.add("/initdata");
/*使用裝配好的authorizationIntercetor
* addPathPatterns("/pro/**")是/pro目錄下的任何連結都要進入authorizationIntercetor執行。
* excludePathPatterns(excludeUrl)是除了這個清單中的路徑無需進入權限攔截器執行*/
registry.addInterceptor(authorizationInterceptor).addPathPatterns("/pro/**").excludePathPatterns(excludeUrl);
}
}
}