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);
}
}
}