Springboot 创建的maven获取resource资源下的文件的两种方式
Springboot 创建的maven项目 打包后获取resource下的资源文件的两种方式:
资源目录:
resources/config/wordFileXml/wordFileRecord.xml 文件信息
获取方式如下:
一:代码打成jar包,lib文件夹和config配置文件同时复制到同一个linux文件夹里面,启动jar文件,获取当前config文件夹的配置文件资源
资源结构:

获取方式:
/**
* 获取lib + jar + resource 方式的resource配置文件中的文件
*/
Document document = Dom4jUtil.getDocument("config/wordFileXml/wordFileRecord.xml"); //指定未编译,直接IntelliJ IDEA 创建的maven目录 //调用下面方法..... /**
* 根据xml路径获得Document文本对象
* 微服务,打成完成的jar,不能再
* @param path xml路径
* @return Document对象
*/
public static Document getDocument(String path) { System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>:"+path);
/**
* 获取普通服务的方式
* lib + jar + resource配置文件
*/ SAXReader reader = new SAXReader();
Document document = null;
try {
//获取当前线程
Thread t=Thread.currentThread();
//获取当前线程的classLoader
ClassLoader c=t.getContextClassLoader();
//获取resouce下面指定文件的file路径(相对路径转绝对路径,将%20的乱码转为空格)
String filePath=c.getResource(path).getFile().replaceAll("%20", " ");
document=reader.read(filePath);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return document;
}
二:代码+lib + resource配置文件 全部打成jar包,直接启动jar文件,获取当前config文件夹的配置文件资源(通过stream 流的方式获取配置信息)
资源结构:

获取方:
/**
* 微服务获取resource配置文件方式
* lib、代码、打包到整个jar包中
* 获取jar包中的resource配置文件中的文件
*/
Document document = Dom4jUtil.getDocument("/BOOT-INF/classes/config/wordFileXml/wordFileRecord.xml"); //指定编译后的jar包中的文件目录,否则找不到 //调用下面方法....... /**
* 根据xml路径获得Document文本对象
* 微服务,打成完成的jar,不能再
* @param path xml路径
* @return Document对象
*/
public static Document getDocument(String path) { System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>:"+path); /**
* 微服务获取resouce配置文件方式
* jar包,resouce,代码,全部再一个jar里面,
* 通过流的形式获取配置文件,然后转为xml文件
*/
Document document = null;
Thread t=Thread.currentThread();
//返回读取指定资源的输入流
InputStream is = t.getClass().getResourceAsStream(path);
//字节流转为字符流,并输出拼接为字符串
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String s="";
String xml="";
try {
//循环输出,拼接
while((s=br.readLine())!=null){
xml+=s;
}
} catch (IOException e) {
log.error("Dom4jUtil ———> getDocument 获取xml流文件信息报错,原因:" +e.getMessage());
// e.printStackTrace();
}
try {
//将字符串转换为xml格式,返回document
document = DocumentHelper.parseText(xml);
} catch (DocumentException e) {
log.error("Dom4jUtil ———> getDocument 创建document对象错误,原因:" +e.getMessage());
document = null;
// e.printStackTrace();
} return document;
}
Springboot 创建的maven获取resource资源下的文件的两种方式的更多相关文章
- 转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式
Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式 出自:http://www.cnblogs.com/top5/archive/2012/08/04/2623464.html 关 ...
- spring boot 打jar包,获取resource路径下的文件
前言:最近在spring boot项目静态类中获取resource路径下文件,在idea中启动都可以获取,但是打包后变成了jar包 就无法获取到. 我想到了两种方法,一种是根据http访问静态资源比如 ...
- Java获取Resource目录下的文件
工程结构: 有两种方式: Java代码中的类,要获取Resource资源文件目录下文件 绝对路径寻址 String s1 = this.getClass().getResource("/te ...
- Springboot以Tomcat为容器实现http重定向到https的两种方式
1 简介 本文将介绍在Springboot中如何通过代码实现Http到Https的重定向,本文仅讲解Tomcat作为容器的情况,其它容器将在以后一一道来. 建议阅读之前的相关文章: (1) Sprin ...
- 探讨Netty获取并检查Websocket握手请求的两种方式
在使用Netty开发Websocket服务时,通常需要解析来自客户端请求的URL.Headers等等相关内容,并做相关检查或处理.本文将讨论两种实现方法. 方法一:基于HandshakeComplet ...
- @Autowired获取配置文件中被注入实例的两种方式
一.说明 二.那么在JavaBean中如何通过@Autowired获取该实例呢?有两种方式: 1.直接获取 @RunWith(SpringJUnit4ClassRunner.class) @Conte ...
- springmvc获取资源文件的两种方式(超简单)
1 比如我们在sc目录下新建一个db.properties文件内容如下 DriverClass=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306 ...
- SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)
最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...
- 【Azure Developer】【Python 】使用 azure.identity 和 azure.common.credentials 获取Azure AD的Access Token的两种方式
问题描述 使用Python代码,展示如何从Azure AD 中获取目标资源的 Access Token. 如要了解如何从AAD中获取 client id,client secret,tenant id ...
随机推荐
- linux-c getopt()参数处理函数
转自:https://www.cnblogs.com/qingergege/p/5914218.html 最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴. 好了,虽然啰嗦了点 ...
- python基础-logging应用
import logging.config BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))LOG_PATH=o ...
- 主从复制系列B
从服务器靠中继日志来接收从主服务器上传回来的日志.并依靠状态文件来记录已经从主服务器接收了哪些日志,已经恢复了哪些日志. 中继日志与二进制日志的格式相同,并且可以用mysqlbinlog读取.SQL线 ...
- [HEOI2016/TJOI2016]排序 线段树+二分
[HEOI2016/TJOI2016]排序 内存限制:256 MiB 时间限制:6000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 在2016年,佳媛姐姐喜欢上了数字序列.因而 ...
- html的常用标签详解1
1.<!DOCTYPE html> 文档声明,不算是标签,但是它可是不能少.这玩意是干什么用的呢? 它是向浏览器自报家门的,即告诉浏览器的解析器应该以什么样的文档类型定义(DTD)来解析它 ...
- mysql报错:You must reset your password using ALTER USER statement before executing this statement.
新安装mysql后,登录后,执行任何命令都会报错: You must reset your password using ALTER USER statement before executing t ...
- 转:Linux fork与vfork的深入分析
源地址:http://linux.chinaitlab.com/c/831529.html 一)fork的概述 .操作系统对进程的管理,是通过进程表完成的.进程表中的每一个表项,记录的是当前操作系统中 ...
- 原生JS制作验证码(优化)
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- [转载] OpenCV2.4.3 CheatSheet学习(三)
四.图像处理(呵呵,重头戏来了) 1. 滤波 filter2D() 用核函数对图像做卷积. sepFilter2D() 用分解的核函数对图像做卷积. 首先,图像的每一行与一维的核kernelX做卷积: ...
- idea报错:Error:java不支持发行版本5的解决方法
将以下对应配置一致即可. File-->Project Structure File-->Settings