Maven項目中讀取src/main/resources目錄下的配置文件的方法
在Maven項目的開發(fā)中,當(dāng)需要讀取src/下的配置文件時,該怎么做?
我們假設(shè)Resources下有一個文件名為kafka.properties的配置文件(為什么用kafka.properties,因為這是在做kafka項目的時候碰到的問題,在網(wǎng)上查到了不少信息,索性當(dāng)個搬運工,再根據(jù)自己的理解整理一下)
1.在java類中讀取
若配置文件不在src/main/resources目錄下,可以直接使用
Properties prop = new properties();
prop.load(new InputStream("kafka.properties"));
當(dāng)配置文件放在src/main/resources的目錄下時,只能使用Class.getResourceAsStream()方法來加載
Properties prop = new properties();
prop.load(this.getClass().getResourceAsStream("/kafka.properties"));
此時,getResourceAsStream(String name)方法中參數(shù)路徑的寫法:
1).若寫成"kafka.properties",則是去當(dāng)前類的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
以下就有兩種方法來調(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)簽中配置多個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中成功調(diào)用配置文件中的參數(shù),以上被注釋的那段property和被注釋掉的那行是同樣效果
2).或者也可以使用如下方法
<context:property-placeholder location="classpath:kafka.properties"/>
直接在spring配置文件中配置context:property-placeholder,有多個配置文件可以用逗號隔開,例如
<context:property-placeholder location="classpath:kafka.properties,classpath:jdbc.properties"/>
調(diào)用的方法跟1).中一樣,這里就不重復(fù)了
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java?Thread.currentThread().getName()?和?this.getName()區(qū)別詳
本文主要介紹了Thread.currentThread().getName()?和?this.getName()區(qū)別詳解,TestThread?testThread?=?new?TestThread();2022-02-02
Java連接合并2個數(shù)組(Array)的5種方法例子
最近在寫代碼時遇到了需要合并兩個數(shù)組的需求,突然發(fā)現(xiàn)以前沒用過,于是研究了一下合并數(shù)組的方式,這篇文章主要給大家介紹了關(guān)于Java連接合并2個數(shù)組(Array)的5種方法,需要的朋友可以參考下2023-12-12
Spring基于ProxyFactoryBean創(chuàng)建AOP代理
這篇文章主要介紹了Spring基于ProxyFactoryBean創(chuàng)建AOP代理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10
Java 中 synchronized的用法詳解(四種用法)
Java語言的關(guān)鍵字,當(dāng)它用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多只有一個線程執(zhí)行該段代碼。本文給大家介紹java中 synchronized的用法,對本文感興趣的朋友一起看看吧2015-11-11
Springboot JPA 枚舉Enum類型存入到數(shù)據(jù)庫的操作
這篇文章主要介紹了Springboot JPA 枚舉Enum類型存入到數(shù)據(jù)庫的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
J2SE基礎(chǔ)之在Eclipse中運行hello world
本文的內(nèi)容非常的簡單,跟隨世界潮流,第一個Java程序輸出“Hell World!”。希望大家能夠喜歡2016-05-05
Java?Stream流中的filter()使用方法舉例詳解
filter()是Java?Stream?API中的中間操作,用于根據(jù)給定的Predicate條件篩選流中的元素,它通過接收一個返回boolean值的函數(shù)(斷言)作為參數(shù),篩選出滿足條件的元素并收集到新的流中,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-11-11

