maven工程如何讀取resource目錄下配置文件
maven工程讀取resource目錄下配置文件
在maven工程中,我們會將配置文件放到src/main/resources下面,例如

我們需要確認(rèn)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");
這樣我們就可以直接拿到路徑,調(diào)用 getResourceAsStream 方法 可以直接拿到目標(biāo)文件的輸入流。
幾種讀取配置文件的方式比較(代碼在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); //拿到資源
- 第一種方式會從當(dāng)前類的目錄下去找,這個文件如果不和該類在一個目錄下,就找不到。
- 第二種方式會從編譯后的整個classes目錄下去找,maven也會把資源文件打包進(jìn)classes文件夾,所以可以找到。
- 第三種方式中ClassLoader就是從整個classes目錄找的,所以前面無需再加/。
maven配置resource,多個source目錄
默認(rèn)情況下
<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, 設(shè)置多個源文件夾 -->
<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節(jié)點,來添加任意多個源文件夾 -->
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring實戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作示例
這篇文章主要介紹了Spring實戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作,結(jié)合實例形式分析了Spring協(xié)調(diào)作用域不同步的Bean相關(guān)配置及使用技巧,需要的朋友可以參考下2019-11-11
Java設(shè)計模式之命令模式_動力節(jié)點Java學(xué)院整理
命令模式就是對命令的封裝,下文中給大家介紹了命令模式類圖中的基本結(jié)構(gòu),對java設(shè)計模式之命令模式相關(guān)知識感興趣的朋友一起看看吧2017-08-08
Java后端限制頻繁請求和重復(fù)提交的實現(xiàn)
很多用戶會請求過于頻繁或者是多次重復(fù)提交數(shù)據(jù),本文主要介紹了Java后端限制頻繁請求和重復(fù)提交的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
Spring Boot中配置文件application.properties使用
這篇文章主要介紹了Spring Boot中配置文件application.properties使用及spring boot讀取application.properties文件的方式,需要的朋友參考下吧2018-01-01
Java 實戰(zhàn)項目錘煉之樸素風(fēng)格個人博客系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java+vue+Springboot+ssm+mysql+maven+redis實現(xiàn)一個樸素風(fēng)格的個人博客系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11

