當前位置:首頁 » 存儲配置 » spring怎麼引用配置文件

spring怎麼引用配置文件

發布時間: 2024-12-04 13:34:44

㈠ 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
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦

熱點內容
榮耀手機如何給網路設密碼 發布:2025-01-06 10:23:31 瀏覽:726
python3設置編碼 發布:2025-01-06 10:01:21 瀏覽:925
java方法命名 發布:2025-01-06 09:55:33 瀏覽:320
ros編譯後的可執行文件 發布:2025-01-06 09:53:27 瀏覽:742
資料庫查詢一個欄位 發布:2025-01-06 09:44:13 瀏覽:689
2008年配置最高的電腦是什麼 發布:2025-01-06 09:40:35 瀏覽:945
蘋果7手機相冊加密 發布:2025-01-06 09:24:24 瀏覽:560
pp紅包安卓版在哪裡找 發布:2025-01-06 09:18:49 瀏覽:906
python讀取資料庫數據 發布:2025-01-06 08:57:19 瀏覽:810
微信編程教程 發布:2025-01-06 08:50:14 瀏覽:225