成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Spring Boot 中加載屬性文件的七種方法

開(kāi)發(fā) 前端
在Spring Boot中,屬性文件通常用于將應(yīng)用程序配置外部化。這使得我們能夠在一個(gè)集中位置管理應(yīng)用程序在不同環(huán)境中的具體行為。

環(huán)境:Spring Boot3.2.5

1. 簡(jiǎn)介

在Spring Boot中,屬性文件通常用于將應(yīng)用程序配置外部化。這使得我們能夠在一個(gè)集中位置管理應(yīng)用程序在不同環(huán)境中的具體行為。屬性文件可以包含鍵值對(duì),這些鍵值對(duì)配置應(yīng)用程序的各個(gè)方面,如數(shù)據(jù)庫(kù)連接詳細(xì)信息、日志設(shè)置或特定于應(yīng)用程序的參數(shù)。

在本篇文章中,我們將探討在 Spring Boot 中加載屬性文件的7種方法。

2. 實(shí)戰(zhàn)案例

2.1 在 Spring Boot 中加載屬性文件

Spring Boot支持從多個(gè)位置獲取屬性。對(duì)于一個(gè)普通的應(yīng)用程序,會(huì)按照給定的順序考慮以下資源:

  • 應(yīng)用程序外部的application.properties / application.yml文件
  • 在應(yīng)用程序內(nèi)部的application.properties / application.yml文件
  • 操作系統(tǒng)環(huán)境變量
  • Java系統(tǒng)屬性
  • 命令行參數(shù)

當(dāng)使用Spring配置文件時(shí),應(yīng)用程序還可以根據(jù)激活的配置文件加載特定于配置文件的屬性文件??梢酝ㄟ^(guò)`spring.profiles.active`屬性傳遞要激活的配置文件。特定于配置文件的`application-{profile}.properties`文件會(huì)優(yōu)先于非特定于配置文件的屬性文件。

  • 應(yīng)用程序外的 application-{profile}.properties
  • 應(yīng)用程序外部的application.properties文件
  • 應(yīng)用程序內(nèi)的 application-{profile}.properties
  • 應(yīng)用程序內(nèi)的 application.properties
  • 操作系統(tǒng)環(huán)境變量
  • Java 系統(tǒng)屬性
  • 命令行參數(shù) 

2.2 應(yīng)用程序外部加載屬性文件

默認(rèn)情況下,Spring Boot會(huì)在項(xiàng)目的`src/main/resources`目錄中查找application.properties文件。然而,我們可以使用`spring.config.location`屬性來(lái)指定application.properties文件的外部位置。

如下,Spring Boot 從指定的外部位置(/home/app/application.properties)而不是默認(rèn)位置加載 application.properties 文件。

java -jar myapp.jar --spring.config.location=/home/app/application.properties

另一種方法是,我們可以將application.properties文件包含在一個(gè)被包含在類(lèi)路徑(classpath)中的目錄中。這樣做允許我們將application.properties文件與應(yīng)用程序一起打包,但出于配置的目的,仍然可以將其外部化。

如下,Spring Boot會(huì)在類(lèi)路徑中查找位于config目錄下的application.properties文件。我們可以將config目錄包含在打包后的JAR文件內(nèi),或者將其放在JAR文件外部的一個(gè)單獨(dú)目錄中。

java -jar myapp.jar --spring.config.additional-location=classpath:/config/

默認(rèn)其實(shí)也是支持從類(lèi)路徑下的/config/中加載配置文件。

2.3 從默認(rèn) application.properties 加載屬性

默認(rèn)情況下,Spring Boot會(huì)在位于src/main/resources目錄下的application.properties或application.yml文件中查找屬性。我們可以使用鍵值對(duì)格式直接在這些文件中定義屬性。

spring.datasource.url=jdbc:mysql://localhost/mydb
spring.datasource.username=root
spring.datasource.password=xxxooo

Spring Boot 會(huì)自動(dòng)加載這些文件中的屬性,并將其提供給應(yīng)用程序。

2.4 加載特定于配置文件的屬性文件

此外,我們可以使用特定于配置文件的application.properties文件來(lái)定制應(yīng)用程序在不同環(huán)境或部署場(chǎng)景下的行為。特定于配置文件的屬性文件被命名為application-{profile}.properties,其中{profile}是配置文件的名稱(chēng)。

java -jar myapp.jar --spring.profiles.active=prod

這里,Spring Boot 激活了生產(chǎn)配置文件,并從 application-prod.properties 中加載屬性。

2.5 從自定義屬性文件中加載屬性

我們還可以通過(guò)使用@PropertySource注解指定自定義屬性文件的位置來(lái)從它們中加載屬性。這允許我們將配置拆分成多個(gè)文件或從外部位置加載屬性。

@Configuration
@PropertySource("classpath:pack.properties")
public class CustomConfiguration {
  @Value("${pack.app.title}")
  private String title ;
}

你可以定義為數(shù)組形式加載多個(gè)配置文件,也可以使用@PropertySources配置多個(gè)。

2.6 通過(guò)環(huán)境變量傳遞/覆蓋屬性

如果我們只考慮一個(gè)或兩個(gè)屬性,Spring Boot允許我們使用環(huán)境變量來(lái)覆蓋這些屬性。環(huán)境變量提供了一種無(wú)需修改屬性文件即可配置應(yīng)用程序的方法,從而更容易地在不同環(huán)境中管理配置。

export SPRING_DATASOURCE_URL=jdbc:mysql://localhost/mydb

這里的spring.datasource.url屬性被SPRING_DATASOURCE_URL環(huán)境變量所覆蓋。

2.7 通過(guò)系統(tǒng)屬性傳遞/覆蓋屬性

類(lèi)似于環(huán)境變量,我們可以使用系統(tǒng)屬性來(lái)覆蓋屬性。系統(tǒng)屬性可以使用JVM命令行選項(xiàng)(-Dproperty=value)或在應(yīng)用程序中通過(guò)編程方式設(shè)置。

java -jar myapp.jar -Dspring.datasource.url=jdbc:mysql://localhost/mydb

請(qǐng)注意,系統(tǒng)屬性具有比屬性文件中或環(huán)境變量中定義的屬性更高的優(yōu)先級(jí)。

責(zé)任編輯:武曉燕 來(lái)源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2016-09-28 20:05:22

2011-12-16 14:45:36

JavaJSP

2011-05-30 13:37:46

JSP

2022-05-24 14:37:49

React條件渲染

2022-10-27 08:09:33

2023-04-18 15:57:30

2024-07-29 08:00:00

2022-09-30 10:48:12

AR制造業(yè)

2025-04-08 08:01:31

2021-07-02 10:43:52

IT人才首席信息官人才招聘

2009-10-29 16:32:24

查看Oracle用戶的

2021-11-11 14:50:01

JavaScriptarry編程開(kāi)發(fā)

2024-11-21 16:30:21

2022-12-12 09:12:30

2022-05-09 13:35:56

云配置云安全黑客

2021-11-19 10:10:14

手機(jī)移動(dòng)設(shè)備網(wǎng)絡(luò)攻擊

2023-06-08 09:00:00

2022-04-18 10:09:52

首席信息官CIO

2016-12-27 19:19:51

2016-10-14 14:30:19

警報(bào)警報(bào)疲勞安全和運(yùn)維團(tuán)隊(duì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美国产精品一区二区三区 | 雨宫琴音一区二区在线 | 国产精品久久久爽爽爽麻豆色哟哟 | 操操操操操 | 最新中文字幕在线播放 | 国产激情91久久精品导航 | 亚洲一区欧美 | 91福利网| 亚洲三区在线观看 | 欧美日韩不卡合集视频 | 国产免费高清 | 欧美久久视频 | 亚洲国产一区二区三区在线观看 | 欧美日韩高清在线观看 | 麻豆久久久久久久久久 | 久久久久99 | 久久久久久久一区 | 性色av一区二区三区 | 亚洲在线 | 午夜电影一区二区 | 国产一极毛片 | 精品日韩一区二区三区 | 亚洲欧洲一区二区 | 国产精品一区在线 | 视频一区二区在线观看 | 99视频免费播放 | 中文字幕在线剧情 | 国产成人精品免费视频大全最热 | 另类 综合 日韩 欧美 亚洲 | 色婷婷综合网站 | 国产精品久久久久久久免费观看 | 欧美456| chengrenzaixian| 自拍偷拍第一页 | 一区二区三区四区国产 | aaaa日韩 | 久久乐国产精品 | 91色在线| 久久国产精品首页 | 中文字幕 在线观看 | 亚洲欧美日韩一区二区 |