这里写自定义目录标题
- 帮助链接
- 核心代码
- 分析
帮助链接
- SpringBoot–WebMvcConfigurer详解
- Ruoyi自定义资源映射
核心代码
/**
* 通用配置
*
* @author wiserice
*/
@Configuration
public class ResourcesConfig implements WebMvcConfigurer
{
@Autowired
private RepeatSubmitInterceptor repeatSubmitInterceptor;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
{
/** 本地文件上传路径 */
// 访问对外暴露的访问路径 /profile/下的文件会被映射到本地项目 /home/ripms/data/bioplantform/uploadfiles/profile/ 下的目录里面。
// Constants.RESOURCE_PREFIX : /profile
registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**")
// BioinfoConfig.getProfile(): /home/ripms/data/bioplantform/uploadfiles/profile
// http://172.16.3.43:8080/profile/avatar/2023/07/25/f45c9f9b-801b-4329-9f64-4ef55d9cd089.jpeg
// /profile + /avatar/2023/07/25/f45c9f9b-801b-4329-9f64-4ef55d9cd089.jpeg
// + /home/ripms/data/bioplantform/uploadfiles/profile + /avatar/2023/07/25/f45c9f9b-801b-4329-9f64-4ef55d9cd089.jpeg
.addResourceLocations("file:" + BioinfoConfig.getProfile() + "/");
/** swagger配置 */
registry.addResourceHandler("/swagger-ui/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
}
/**
* 自定义拦截规则
*/
@Override
public void addInterceptors(InterceptorRegistry registry)
{
registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**");
}
/**
* 跨域配置
*/
@Bean
public CorsFilter corsFilter()
{
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
// 设置访问源地址
config.addAllowedOriginPattern("*");
// config.addAllowedOrigin("*");
// 设置访问源请求头
config.addAllowedHeader("*");
// 设置访问源请求方法
config.addAllowedMethod("*");
// 有效期 1800秒
config.setMaxAge(1800L);
// 添加映射路径,拦截一切请求
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
// 返回新的CorsFilter
return new CorsFilter(source);
}
}
分析
其实,通俗点来说,就是等于 http://localhost:8080/profile
,服务器就知道去找本地的静态资源。