SpringBoot项目配置url请求路径映射本地文件路径
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Value("${kxapp.data-path}")
String dataPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String s= Paths.get(dataPath).resolve("public-resource").toUri().toString();
registry.addResourceHandler("/public-resource/**").addResourceLocations(s);
}
}
${kxapp.data-path}引用application.properties文件中配置的kxapp.data-path变量
application.properties文件该变量配置如下:
kxapp.data-path=F:\\kxapp_book\\tkxapp\\data
String s = Paths.get(dataPath).resolve("public-resource").toUri().toString()
得到的字符串s为: F:\kxapp_book\tkxapp\data\public-resource
关键代码:
registry.addResourceHandler("/public-resource/**").addResourceLocations(s);
addResourceHandler表示url路径中以/public-resource开头,会将public-resource解析为
addResourceLocations(s)中s表示的路径
比如url请求为:http://localhost:8080/publicresource/20220722/da7130c1570c4c79a92e6ac08d82dbb5.jpg 会被配置的资源处理器解析成http://localhost:8080/F:/kxapp_book/tkxapp/data/20220722/da7130c1570c4c79a92e6ac08d82dbb5.jpg publicresource被替换成了F:/kxapp_book/tkxapp/data
觉得有用的可以点赞收藏,谢谢!