spring怎麼引用配置文件
㈠ SpringBoot 項目打成 jar 後,如何載入外部的配置文件
本文探討了如何在SpringBoot項目打包成jar後,載入外部配置文件的方法。通常,配置信息放在application.properties文件中,但若需要頻繁修改,建議將其外置。
首先,我們考慮將application.properties文件外置。此文件主要用於定義配置信息,如項目名稱、資料庫連接等,其外置方法如下:
1. 在項目中定義application.properties文件,並將其放置於項目路徑外。例如,可將其保存在同級目錄下。
2. 在Controller中使用此文件進行配置讀取。啟動時使用java -jar命令,例如:java -jar springboot-out-properties-0.0.1-SNAPSHOT.jar。
3. 修改配置文件中的值。若將此文件放在項目同級目錄下,重新啟動應用後,讀取的配置值將相應改變。
4. 若需將application.properties文件放入自定義目錄(如config),應用仍能識別。通過指定路徑使用java命令啟動應用,如:java -jar springboot-out-properties-0.0.1-SNAPSHOT.jar--spring.config.location=conf/application.properties。
5. 使用絕對路徑同樣可行:java -jar springboot-out-properties-0.0.1-SNAPSHOT.jar--spring.config.location=/Users/linxiangxian/Downloads/conf/application.properties。
在實際應用中,若需使用自定義的properties文件,如demo.properties,可以通過@PropertySource註解進行配置。但直接放置於jar包同路徑下可能無法識別,這時需通過指定路徑啟動應用或使用@PropertySource指定多個路徑。
總結,SpringBoot項目打成jar後,配置文件載入邏輯如下:
1. application.properties默認讀取classpath下的文件。同級路徑下的文件直接讀取,無需調整啟動命令。
2. 放置在config下的application.properties文件同樣可直接讀取,啟動命令不變。
3. 同級目錄下的conf/application.properties文件,需通過--spring.config.location參數指定路徑讀取。
4. 對於自定義的properties文件(如demo.properties),默認從classpath讀取。若需在不同路徑下使用,可通過配置@PropertySource指定多個路徑,並將期望被使用的路徑置於最後,以覆蓋之前的配置。
㈡ 如何在spring中讀取properties配置文件裡面的信息
一般來說。我們會將一些配置的信息放在。properties文件中。
然後使用${}將配置文件中的信息讀取至spring的配置文件。
那麼我們如何在spring讀取properties文件呢。
1.首先。我們要先在spring配置文件中。定義一個專門讀取properties文件的類.
例:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:jdbc.properties</value>
<!--要是有多個配置文件,只需在這里繼續添加即可 -->
</list>
</property>
</bean>
這里為什麼用locations(還有一個location)
是因為。一般來說。我們的項目裡面。配置文件可能存在多個。
就算是只有一個。那將來新添加的話。只需在下面再加一個value標簽即可。
而不必再重新改動太多。(當然。性能上是否有影響,這個以當前這種伺服器的配置來說。是基科可以忽略不計的)。
然後我們就可以在jdbc.properties文件中填寫具體的配置信息了。
<!-- 配置C3P0數據源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
<value>${jdbc.driverClassName}</value>
</property>
<property name="jdbcUrl">
<value>${jdbc.url}</value>
</property>
<property name="user">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean>
jdbc.properties文件寫的信息。
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=root
附加一個列子:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:/data/pc-config/passport.properties</value>
<value>classpath:memcached.properties</value>
</list>
</property>
</bean>
classpath:是指的當前類文件的目錄下。
file:在window下是指的當前分區(比如你的項目是放在d盤,則是在d:/data/pc-config/passport.properties)
在linux下,則是當前路徑下的文件/data/pc-config/passport.properties
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦