maven工程如何讀取resource目錄下配置文件
maven工程讀取resource目錄下配置文件
在maven工程中,我們會(huì)將配置文件放到src/main/resources下面,例如
我們需要確認(rèn)resource 下的文件編譯之后存放的位置。
它編譯的路徑直接位于classes下面,這個(gè)路徑其實(shí)就是classPath的路徑,所以,在resources 根目錄下的配置文件其實(shí)就是 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); //拿到資源
- 第一種方式會(huì)從當(dāng)前類的目錄下去找,這個(gè)文件如果不和該類在一個(gè)目錄下,就找不到。
- 第二種方式會(huì)從編譯后的整個(gè)classes目錄下去找,maven也會(huì)把資源文件打包進(jìn)classes文件夾,所以可以找到。
- 第三種方式中ClassLoader就是從整個(gè)classes目錄找的,所以前面無(wú)需再加/。
maven配置resource,多個(gè)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>
配置多個(gè)資源文件夾
<build> <resources> <resource> <directory>src/main/resources</directory> </resource> <resource> <directory>src/labs/resources</directory> </resource> </resources> </build>
使用eclipse要更新一下maven工程的配置。項(xiàng)目右鍵-》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>
配置多個(gè)源文件夾
<build> <plugins>... <!-- build-helper-maven-plugin, 設(shè)置多個(gè)源文件夾 --> <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> <!-- 我們可以通過在這里添加多個(gè)source節(jié)點(diǎn),來(lái)添加任意多個(gè)源文件夾 --> </sources> </configuration> </execution> </executions> </plugin> </plugins> </build>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- maven如何利用springboot的配置文件進(jìn)行多個(gè)環(huán)境的打包
- IDEA設(shè)置maven修改settings.xml配置文件無(wú)法加載倉(cāng)庫(kù)的解決方案
- Maven 的配置文件路徑讀取方法
- 詳解maven的setting配置文件中mirror和repository的區(qū)別
- 使用maven profile指定配置文件打包適用多環(huán)境的方法
- Maven項(xiàng)目中讀取src/main/resources目錄下的配置文件的方法
- Maven setting.xml配置文件詳解
- Maven在不同的環(huán)境獲取不同配置文件的方法
相關(guān)文章
spring schedule配置多任務(wù)動(dòng)態(tài)cron(增刪啟停)
這篇文章主要介紹了spring schedule配置多任務(wù)動(dòng)態(tài)cron(增刪啟停),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Java讀取resources中資源文件路徑以及jar中文件無(wú)法讀取的解決
這篇文章主要介紹了Java讀取resources中資源文件路徑以及jar中文件無(wú)法讀取的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Spring Boot Rest控制器單元測(cè)試過程解析
這篇文章主要介紹了Spring Boot Rest控制器單元測(cè)試過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03java連接hdfs ha和調(diào)用mapreduce jar示例
這篇文章主要介紹了Java API連接HDFS HA和調(diào)用MapReduce jar包,需要的朋友可以參考下2014-03-03詳解Spring注解--@Autowired、@Resource和@Service
本篇文章主要介紹最重要的三個(gè)Spring注解,也就是@Autowired、@Resource和@Service,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05詳解spring中使用solr的代碼實(shí)現(xiàn)
本篇文章主要介紹了詳解spring中使用solr的代碼實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-05-05Java正則校驗(yàn)密碼至少包含字母數(shù)字特殊符號(hào)中的2種實(shí)例代碼
正則表達(dá)式驗(yàn)證密碼功能在項(xiàng)目中經(jīng)常被使用到,但是很多朋友還是不大會(huì)使用密碼正則表達(dá)式進(jìn)行驗(yàn)證,下面這篇文章主要給大家介紹了關(guān)于Java正則校驗(yàn)密碼至少包含字母數(shù)字特殊符號(hào)中2種的相關(guān)資料,需要的朋友可以參考下2022-08-08spring-AOP 及 AOP獲取request各項(xiàng)參數(shù)操作
這篇文章主要介紹了spring-AOP 及 AOP獲取request各項(xiàng)參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07