maven工程如何读取resource目录下配置文件

 更新时间:2021年11月19日 09:39:25   作者:追梦菜鸟  
这篇文章主要介绍了maven工程如何读取,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

maven工程读取resource目录下配置文件

在maven工程中,我们会将配置文件放到src/main/resources下面,例如

我们需要确认resource 下的文件编译之后存放的位置。

它编译的路径直接位于classes下面,这个路径其实就是classPath的路径,所以,在resources 根目录下的配置文件其实就是 classPath的路径。

public static void main(String[] args) throws ParserConfigurationException, Exception{  
        ClassLoader classLoader = TestDom.class.getClassLoader();  
        URL resource = classLoader.getResource("test.xml");  
        String path = resource.getPath();  
        System.out.println(path);  
        InputStream resourceAsStream = classLoader.getResourceAsStream("test.xml"); 

这样我们就可以直接拿到路径,调用 getResourceAsStream 方法 可以直接拿到目标文件的输入流。

几种读取配置文件的方式比较(代码在src/main/java目录下,资源文件在src/main/resources/目录下):

InputStream is = this.getClass().getResourceAsStream(test.xml);  //拿不到资源
InputStream is = this.getClass().getResourceAsStream("/" +test.xml); // 拿到资源
InputStream is = this.getClass().getClassLoader().getResourceAsStream(test.xml); //拿到资源
  • 第一种方式会从当前类的目录下去找,这个文件如果不和该类在一个目录下,就找不到。
  • 第二种方式会从编译后的整个classes目录下去找,maven也会把资源文件打包进classes文件夹,所以可以找到。
  • 第三种方式中ClassLoader就是从整个classes目录找的,所以前面无需再加/。

maven配置resource,多个source目录

默认情况下

<build> 
  <sourceDirectory>src/main/java</sourceDirectory>  
  <testSourceDirectory>src/test/java</testSourceDirectory>  
  <resources> 
    <resource> 
      <directory>src/main/resources</directory> 
    </resource> 
  </resources>  
  <testResources> 
    <testResource> 
      <directory>src/test/resources</directory> 
    </testResource> 
  </testResources> 
</build>

配置多个资源文件夹

<build> 
  <resources> 
    <resource> 
      <directory>src/main/resources</directory> 
    </resource>  
    <resource> 
      <directory>src/labs/resources</directory> 
    </resource> 
  </resources> 
</build>

使用eclipse要更新一下maven工程的配置。项目右键-》maven-》update project configuration

配置读取源文件夹里的资源文件

<build>
  <resources> 
    <resource> 
      <directory>src/main/resources</directory> 
    </resource>  
    <resource> 
      <directory>src/labs/resources</directory> 
    </resource>  
    <resource> 
      <directory>src/main/java</directory>  
      <includes> 
        <include>**/*.hbm.xml</include> 
      </includes> 
    </resource>  
    <resource> 
      <directory>src/labs/java</directory>  
      <includes> 
        <include>**/*.hbm.xml</include> 
      </includes> 
    </resource> 
  </resources>
</build>

配置多个源文件夹

<build>
  <plugins>... 
    <!-- build-helper-maven-plugin, 设置多个源文件夹 -->  
    <plugin> 
      <groupId>org.codehaus.mojo</groupId>  
      <artifactId>build-helper-maven-plugin</artifactId>  
      <version>1.4</version>  
      <executions> 
        <execution> 
          <id>add-source</id>  
          <phase>generate-sources</phase>  
          <goals> 
            <goal>add-source</goal> 
          </goals>  
          <configuration> 
            <sources> 
              <source>${basedir}/src/labs/java</source>  
              <!-- 我们可以通过在这里添加多个source节点,来添加任意多个源文件夹 --> 
            </sources> 
          </configuration> 
        </execution> 
      </executions> 
    </plugin>
  </plugins>
</build>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring实战之协调作用域不同步的Bean操作示例

    Spring实战之协调作用域不同步的Bean操作示例

    这篇文章主要介绍了Spring实战之协调作用域不同步的Bean操作,结合实例形式分析了Spring协调作用域不同步的Bean相关配置及使用技巧,需要的朋友可以参考下
    2019-11-11
  • Java设计模式之命令模式_动力节点Java学院整理

    Java设计模式之命令模式_动力节点Java学院整理

    命令模式就是对命令的封装,下文中给大家介绍了命令模式类图中的基本结构,对java设计模式之命令模式相关知识感兴趣的朋友一起看看吧
    2017-08-08
  • java中sleep方法和wait方法的五个区别

    java中sleep方法和wait方法的五个区别

    这篇文章主要介绍了java中sleep方法和wait方法的五个区别,sleep 方法和 wait 方法都是用来将线程进入休眠状态,但是又有一些区别,下面我们就一起来看看吧
    2022-05-05
  • Java后端限制频繁请求和重复提交的实现

    Java后端限制频繁请求和重复提交的实现

    很多用户会请求过于频繁或者是多次重复提交数据,本文主要介绍了Java后端限制频繁请求和重复提交的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 深入IDEA Debug问题透析详解

    深入IDEA Debug问题透析详解

    这篇文章主要为大家介绍了深入IDEA Debug问题透析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Ubuntu安装jdk8常用方法流程解析

    Ubuntu安装jdk8常用方法流程解析

    这篇文章主要介绍了Ubuntu安装jdk8常用方法流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Spring Boot中配置文件application.properties使用

    Spring Boot中配置文件application.properties使用

    这篇文章主要介绍了Spring Boot中配置文件application.properties使用及spring boot读取application.properties文件的方式,需要的朋友参考下吧
    2018-01-01
  • Java 实战项目锤炼之朴素风格个人博客系统的实现流程

    Java 实战项目锤炼之朴素风格个人博客系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java+vue+Springboot+ssm+mysql+maven+redis实现一个朴素风格的个人博客系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • 详解Spring MVC优雅处理异常的6种方式

    详解Spring MVC优雅处理异常的6种方式

    在Spring中提供了多种机制来处理控制器抛出的异常,确保应用程序在面对各种错误情况时能够优雅地响应,本文我们来详细分析Spring MVC中6种优雅处理异常的方式,需要的可以参考下
    2024-12-12
  • Java基础教程之组合(composition)

    Java基础教程之组合(composition)

    这篇文章主要介绍了Java基础教程之组合(composition),组合是在Java中实现程序复用(reusibility)的基本手段之一,需要的朋友可以参考下
    2014-08-08

最新评论