三種方式java
因此推薦使用第二種,方案,接口中的方法是default ,沒必要實現全部方法web
代碼:spring
import com.starfast.admin.interceptor.PermissionInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * @author DUCHONG **/ @Configuration public class AdminWebConfig implements WebMvcConfigurer { @Autowired private PermissionInterceptor permissionInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(permissionInterceptor) .addPathPatterns("/**") .excludePathPatterns("/monitor/druid/*") .excludePathPatterns("/user/login") .excludePathPatterns("/user/logout") ; } }
跨域過濾器跨域
import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class CrossOriginFilter implements Filter { public void destroy() { System.out.println("----Filter銷燬----"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletResponse httpServletResponse = (HttpServletResponse)response; httpServletResponse.setHeader("Access-Control-Allow-Origin", "*"); httpServletResponse.setHeader("Access-Control-Allow-Headers", "Authentication"); // 執行目標資源,放行 filterChain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { System.out.println("----Filter初始化----"); } }
添加到配置中,也能夠和攔截器的配置放在一塊springboot
import com.starfast.admin.filter.CrossOriginFilter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.Arrays; /** * 跨域過濾器 * @author DUCHONG **/ @Configuration public class ServletConfig { @Bean public FilterRegistrationBean crossOriginFilter(){ FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(); filterRegistrationBean.setFilter(new CrossOriginFilter()); filterRegistrationBean.setUrlPatterns(Arrays.asList("/router/**")); return filterRegistrationBean; } }