SpringBoot支持跨域
@Configuration
public class ApplicationConfig extends WebMvcConfigurerAdapter {
@Autowired
private FilterConfig filterConfig;
@Bean(name = "messageSource")
public ResourceBundleMessageSource getMessageSource() {
ResourceBundleMessageSource resourceBundleMessageSource = new ResourceBundleMessageSource();
resourceBundleMessageSource.setDefaultEncoding("UTF-8");
resourceBundleMessageSource.setBasenames("i18n/messages", "i18n/ValidationMessages");
resourceBundleMessageSource.setCacheSeconds(3600);
return resourceBundleMessageSource;
}
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.addAllowedOrigin("*");
config.setAllowCredentials(true);
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/asset/**").addResourceLocations("classpath:/asset/");
super.addResourceHandlers(registry);
}
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverterFactory(new OrdinalToEnumConverterFactory());
super.addFormatters(registry);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(filterConfig).addPathPatterns("/**");
registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/code/sms-provider/**","/captcha","/system/employee/sign/in",
"/system/employee/check","/system/employee/logout",
"/noauth/exchange-coin/detail",
"/noauth/exchange-coin/modify-limit");
registry.addInterceptor(new LogInterceptor()).addPathPatterns("/**");
registry.addInterceptor(new OutExcelInterceptor()).addPathPatterns("/**/out-excel");
super.addInterceptors(registry);
}
}