Bootstrap

为什么配置文件中的classpath路径没有被解析成功?

问题重现

在.properties配置文件中
web.upload-path=classpath:/static

@Value("${web.upload-path}")
private String path;

注入这个path使用,会报错
java.io.IOException: 文件名、目录名或卷标语法不正确

原因是classpath:无法被解析成resource目录

解决

方案一.@Value的时候使用Resource类型来接收

   @Value("${web.upload-path}")
   private Resource path;

后续如果需要使用路径

String path = uploadPath.getFile().getAbsolutePath();

方案二:相对路径 替代classpath
web.upload-path=src/main/resources/static

;