springboot获取当前项目路径的地址spring
System.getProperty("user.dir")springboot
输出目录: G:\outshine\wangsosoapp
//获取classes目录绝对路径测试
String path = ClassUtils.getDefaultClassLoader().getResource("").getPath();url
String path = ResourceUtils.getURL("classpath:").getPath();spa
输出目录: /G:/outshine/wangsoso/target/classes/资源
//若是上传目录为/static/images/upload/,则能够以下获取:
File upload = new File(path.getAbsolutePath(),"static/images/upload/");
if(!upload.exists()) upload.mkdirs();
System.out.println("upload url:"+upload.getAbsolutePath());
//在开发测试模式时,获得的地址为:{项目跟目录}/target/static/images/upload/
//在打包成jar正式发布时,获得的地址为:{发布jar包目录}/static/images/upload/开发
注意:以jar包发布项目时,咱们存储的路径是与jar包同级的static目录,所以咱们须要在jar包目录的application.properties配置文件中设置静态资源路径,以下所示:get
#设置静态资源路径,多个以逗号分隔io
spring.resources.static-locations=classpath:static/,file:static/
以jar包发布springboot项目时,默认会先使用jar包跟目录下的application.properties来做为项目配置文件。
若是在不一样的目录中存在多个配置文件,它的读取顺序是:
一、config/application.properties(项目根目录中config目录下)
二、config/application.yml
三、application.properties(项目根目录下)
四、application.yml
五、resources/config/application.properties(项目resources目录中config目录下)
六、resources/config/application.yml
七、resources/application.properties(项目的resources目录下)
八、resources/application.yml
注:
一、若是同一个目录下,有application.yml也有application.properties,默认先读取application.properties。
二、若是同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。
三、建立SpringBoot项目时,通常的配置文件放置在“项目的resources目录下”