import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
//解决前端跨域问题
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
final CorsConfiguration corsConfiguration = new CorsConfiguration();
/*是否允许请求带有验证信息*/
corsConfiguration.setAllowCredentials(true);
/*允许访问的客户端域名*/
corsConfiguration.addAllowedOrigin("*");
/*允许服务端访问的客户端请求头*/
corsConfiguration.addAllowedHeader("*");
/*允许访问的方法名,GET POST等*/
corsConfiguration.addAllowedMethod("*");
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
前端文件地址映射问题
/**
* web 配置类
*
* @author fengshuonan
*/
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Value("${modelResourcePath}")
private String modelResourcePath;
@Value("${modelResourceUrl}")
private String modelResourceUrl;
/**
* 映射地址
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("file:D:/shuziren/");
//获取文件的存储目录
File modelResource = new File(modelResourcePath);
System.err.println(System.getProperty("user.dir"));
try {
//判断是windows系统还是linux系统,做不同路径的映射
String osName = System.getProperty("os.name").toLowerCase().substring(0,3);
if (osName.equals("win")){
registry.addResourceHandler(modelResourceUrl)
.addResourceLocations("file:"+modelResource.getCanonicalPath()+"\\");
}else if (osName.equals("lin")){
registry.addResourceHandler(modelResourceUrl)
.addResourceLocations("file:"+modelResource.getCanonicalPath()+"/");
}
} catch (IOException e) {
e.printStackTrace();
}
}