Maven項(xiàng)目中讀取src/main/resources目錄下的配置文件的方法
在Maven項(xiàng)目的開發(fā)中,當(dāng)需要讀取src/下的配置文件時(shí),該怎么做?
我們假設(shè)Resources下有一個(gè)文件名為kafka.properties的配置文件(為什么用kafka.properties,因?yàn)檫@是在做kafka項(xiàng)目的時(shí)候碰到的問題,在網(wǎng)上查到了不少信息,索性當(dāng)個(gè)搬運(yùn)工,再根據(jù)自己的理解整理一下)
1.在java類中讀取
若配置文件不在src/main/resources目錄下,可以直接使用
Properties prop = new properties(); prop.load(new InputStream("kafka.properties"));
當(dāng)配置文件放在src/main/resources的目錄下時(shí),只能使用Class.getResourceAsStream()方法來加載
Properties prop = new properties(); prop.load(this.getClass().getResourceAsStream("/kafka.properties"));
此時(shí),getResourceAsStream(String name)方法中參數(shù)路徑的寫法:
1).若寫成"kafka.properties",則是去當(dāng)前類的class文件同一目錄下找(但是顯然在正常項(xiàng)目不會(huì)有人將配置文件放在這種位置)。
2).若寫成"/kafka.properties",則是去整個(gè)項(xiàng)目的classes目錄下去找,即target/classes
2.在spring框架的xml文件中讀取
首先我們先隨便寫個(gè)配置文件kafka.properties
kafka.topic=topic serializer.class=kafka.serializer.StringEncoder key.serializer.class=kafka.serializer.StringEncoder
以下就有兩種方法來調(diào)用
1).首先可以在spring的bean中配置
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <span style="white-space:pre"> </span><value>/kafka.properties</value> </list> </property> </bean>
這里還可以在list標(biāo)簽中配置多個(gè)value,這樣就可以在bean中讀取一個(gè)甚至多個(gè)配置文件。
<bean id="kafkaService" class="com.wws.service.impl.KafkaServiceImpl"> <!-- <property name="topic"><value>topic</value></property> --> <property name="topic"><value>${kafka.topic}</value></property> </bean>
這樣就可以在后面的bean中成功調(diào)用配置文件中的參數(shù),以上被注釋的那段property和被注釋掉的那行是同樣效果
2).或者也可以使用如下方法
<context:property-placeholder location="classpath:kafka.properties"/>
直接在spring配置文件中配置context:property-placeholder,有多個(gè)配置文件可以用逗號(hào)隔開,例如
<context:property-placeholder location="classpath:kafka.properties,classpath:jdbc.properties"/>
調(diào)用的方法跟1).中一樣,這里就不重復(fù)了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring-boot JMS 發(fā)送消息慢的解決方法
這篇文章主要為大家詳細(xì)介紹了Spring-boot JMS 發(fā)送消息慢的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Java使用@Autowired注解獲取對(duì)象為null的幾種情況及解決方法
這篇文章主要給大家介紹了使用@Autowired注解獲取對(duì)象為null的幾種情況以及?解決方法,文中有詳細(xì)的代碼示例講解,具有一定的參考價(jià)值,需要的朋友可以參考下2023-09-09基于Java在netty中實(shí)現(xiàn)線程和CPU綁定
這篇文章主要介紹了基于Java在netty中實(shí)現(xiàn)線程和CPU綁定,文章圍繞主題的相關(guān)內(nèi)容展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05Eclipse引用XSD實(shí)現(xiàn)XML配置文件提示標(biāo)簽的方法
今天小編就為大家分享一篇關(guān)于Eclipse引用XSD實(shí)現(xiàn)XML配置文件提示標(biāo)簽的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03SpringBoot的DeferredResult案例:DeferredResult的超時(shí)處理方式
這篇文章主要介紹了SpringBoot的DeferredResult案例:DeferredResult的超時(shí)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01詳解java中List中set方法和add方法的區(qū)別
本文主要介紹了詳解java中List中set方法和add方法的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08