SpringBoot获取项目文件的绝对路径和相对路径

简介: SpringBoot获取项目文件的绝对路径和相对路径

@[toc]

1.场景

比如上传图片或者读取项目里的excel文件内容等,都需要准确获取文件路径

2.说明

项目代码大致样式

image.png

获取路径说明

所谓获取的相对路径,其实是获取项目打包后的target目录的路径,而不是咱们平常看到的代码路径,具体可查看下方图片

image.png

3.举例说明网上常见几种方法的路径获取结果

  1. request.getServletContext().getRealPath("")
  2. request.getServletContext().getRealPath("/")
  3. OperateExcelController.class.getResource("").getPath()
  4. OperateExcelController.class.getResource("/").getPath()
  5. OperateExcelController.class.getClassLoader().getResource("static/尼克.jpg").getPath()
  6. ResourceUtils.getURL("classpath:").getPath()

其中OperateExcelController为所在的类,ResourceUtils引入的是package org.springframework.util;

详情说明:
方法1、2的request.getServletContext().getRealPath("")和 request.getServletContext().getRealPath("/")
获得的路径不是项目路径,而是c盘下一个tomcat目录路径)
结果比如:C:\Users\211145187\AppData\Local\Temp\tomcat-docbase.8888.12632778012386910853\

会议详情

image.png

重要信息

大会介绍

image.png
image.png

方法3、4、5、6的OperateExcelController.class.getResource("").getPath()和OperateExcelController.class.getResource("/").getPath()和OperateExcelController.class.getClassLoader().getResource("").getPath()和ResourceUtils.getURL("classpath:").getPath()
实际获取的都是编译包里的根据经 比如:xx.class.getResource("").getPath()=xx.class.getResource("/").getPath()=xx.class.getClassLoader().getResource("").getPath()=ResourceUtils.getURL("classpath:").getPath()
结果比如:/E:/WorkSpace/demo/target/classes/

目录
相关文章
|
21天前
|
网络协议 Java
springboot配置hosts文件
springboot配置hosts文件
44 11
|
2月前
|
XML Java Kotlin
springboot + minio + kkfile实现文件预览
本文介绍了如何在容器中安装和启动kkfileviewer,并通过Spring Boot集成MinIO实现文件上传与预览功能。首先,通过下载kkfileviewer源码并构建Docker镜像来部署文件预览服务。接着,在Spring Boot项目中添加MinIO依赖,配置MinIO客户端,并实现文件上传与获取预览链接的接口。最后,通过测试验证文件上传和预览功能的正确性。
springboot + minio + kkfile实现文件预览
|
18天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
31 2
|
22天前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
38 8
|
27天前
|
存储 前端开发 JavaScript
|
27天前
|
存储 Java API
|
2月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
367 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
29天前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
45 2
|
29天前
|
前端开发 Java Spring
SpringBoot项目thymeleaf页面支持词条国际化切换
SpringBoot项目thymeleaf页面支持词条国际化切换
60 2
|
29天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
39 1