您好,登錄后才能下訂單哦!
在Maven項目的開發中,當需要讀取src/下的配置文件時,該怎么做?
我們假設Resources下有一個文件名為kafka.properties的配置文件(為什么用kafka.properties,因為這是在做kafka項目的時候碰到的問題,在網上查到了不少信息,索性當個搬運工,再根據自己的理解整理一下)
1.在java類中讀取
若配置文件不在src/main/resources目錄下,可以直接使用
Properties prop = new properties(); prop.load(new InputStream("kafka.properties"));
當配置文件放在src/main/resources的目錄下時,只能使用Class.getResourceAsStream()方法來加載
Properties prop = new properties(); prop.load(this.getClass().getResourceAsStream("/kafka.properties"));
此時,getResourceAsStream(String name)方法中參數路徑的寫法:
1).若寫成"kafka.properties",則是去當前類的class文件同一目錄下找(但是顯然在正常項目不會有人將配置文件放在這種位置)。
2).若寫成"/kafka.properties",則是去整個項目的classes目錄下去找,即target/classes
2.在spring框架的xml文件中讀取
首先我們先隨便寫個配置文件kafka.properties
kafka.topic=topic serializer.class=kafka.serializer.StringEncoder key.serializer.class=kafka.serializer.StringEncoder
以下就有兩種方法來調用
1).首先可以在spring的bean中配置
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <span > </span><value>/kafka.properties</value> </list> </property> </bean>
這里還可以在list標簽中配置多個value,這樣就可以在bean中讀取一個甚至多個配置文件。
<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中成功調用配置文件中的參數,以上被注釋的那段property和被注釋掉的那行是同樣效果
2).或者也可以使用如下方法
<context:property-placeholder location="classpath:kafka.properties"/>
直接在spring配置文件中配置context:property-placeholder,有多個配置文件可以用逗號隔開,例如
<context:property-placeholder location="classpath:kafka.properties,classpath:jdbc.properties"/>
調用的方法跟1).中一樣,這里就不重復了
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。