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资源下的文件的两种方式的更多相关文章

  1. 转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式

    Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式 出自:http://www.cnblogs.com/top5/archive/2012/08/04/2623464.html 关 ...

  2. spring boot 打jar包,获取resource路径下的文件

    前言:最近在spring boot项目静态类中获取resource路径下文件,在idea中启动都可以获取,但是打包后变成了jar包 就无法获取到. 我想到了两种方法,一种是根据http访问静态资源比如 ...

  3. Java获取Resource目录下的文件

    工程结构: 有两种方式: Java代码中的类,要获取Resource资源文件目录下文件 绝对路径寻址 String s1 = this.getClass().getResource("/te ...

  4. Springboot以Tomcat为容器实现http重定向到https的两种方式

    1 简介 本文将介绍在Springboot中如何通过代码实现Http到Https的重定向,本文仅讲解Tomcat作为容器的情况,其它容器将在以后一一道来. 建议阅读之前的相关文章: (1) Sprin ...

  5. 探讨Netty获取并检查Websocket握手请求的两种方式

    在使用Netty开发Websocket服务时,通常需要解析来自客户端请求的URL.Headers等等相关内容,并做相关检查或处理.本文将讨论两种实现方法. 方法一:基于HandshakeComplet ...

  6. @Autowired获取配置文件中被注入实例的两种方式

    一.说明 二.那么在JavaBean中如何通过@Autowired获取该实例呢?有两种方式: 1.直接获取 @RunWith(SpringJUnit4ClassRunner.class) @Conte ...

  7. springmvc获取资源文件的两种方式(超简单)

    1 比如我们在sc目录下新建一个db.properties文件内容如下 DriverClass=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306 ...

  8. SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

    最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...

  9. 【Azure Developer】【Python 】使用 azure.identity 和 azure.common.credentials 获取Azure AD的Access Token的两种方式

    问题描述 使用Python代码,展示如何从Azure AD 中获取目标资源的 Access Token. 如要了解如何从AAD中获取 client id,client secret,tenant id ...

随机推荐

  1. Mount- Linux必学的60个命令

    1.作用 mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者. 2.格式 mount -a [-fv] [-t vfstype] [-n] [-rw] [-F ...

  2. 2.Spring【DI】XML方式

    依赖: 在A类中引用了B类,说明A依赖于B. 注入: 使用Spring框架给A类中的B对象的属性赋值. 直接上代码: 1.只使用IOC public class Person { private St ...

  3. 测试是否是移动端,是否是iphone,是否是安卓

    function isMobile(){ return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(na ...

  4. JS的第七种语言类型--symbol

    今天浏览网页的时候发现,JS中有七种语言类型.我的内心???百度一下哪里来的第七种!! 好吧跟着来回顾一下JS的前6种undefined null boolean string numver obje ...

  5. 微信小程序——tab导航栏

    wxml: <view class="tab">  <view class="tab-left" bindtap="tabFun&q ...

  6. 修改mysql字段类型,修改字段名

    修改字段类型(数据类型,长度,默认值) alter table user modify user_name 类型 修改字段名 方法一:alter table 表 change 旧字段名 新字段名 新数 ...

  7. 给NetBeans配置javafx环境

    JavaFX开发环境安装配置,这里给大家介绍一个非常有用的步骤 从Java8开始,JDK(Java开发工具包)包括了JavaFX库. 因此,要运行JavaFX应用程序,您只需要在系统中安装Java8或 ...

  8. 把char[]数组里面的内容用MessageBox显示出来

    const char *q; q = mysql_get_client_info();  //获得一字符串指针 CString p(q); AfxMessageBox(p);

  9. Luogu P1311 选择客栈(前缀和)

    P1311 选择客栈 题意 题目描述 丽江河边有\(n\)家很有特色的客栈,客栈按照其位置顺序从\(1\)到\(n\)编号.每家客栈都按照某一种色调进行装饰(总共\(k\)种,用整数\(0\)~\(k ...

  10. MySQL系列(一)--基础知识(转载)

    安装就不说了,网上多得是,我的MySQL是8.0版本,可以参考:CentOS7安装MySQL8.0图文教程和MySQL8.0本地访问设置为远程访问权限 我的MySQL安装在阿里云上面,阿里云向外暴露端 ...