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

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

開發 前端
在Spring Boot中,屬性文件通常用于將應用程序配置外部化。這使得我們能夠在一個集中位置管理應用程序在不同環境中的具體行為。

環境:Spring Boot3.2.5

1. 簡介

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

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

2. 實戰案例

2.1 在 Spring Boot 中加載屬性文件

Spring Boot支持從多個位置獲取屬性。對于一個普通的應用程序,會按照給定的順序考慮以下資源:

  • 應用程序外部的application.properties / application.yml文件
  • 在應用程序內部的application.properties / application.yml文件
  • 操作系統環境變量
  • Java系統屬性
  • 命令行參數

當使用Spring配置文件時,應用程序還可以根據激活的配置文件加載特定于配置文件的屬性文件。可以通過`spring.profiles.active`屬性傳遞要激活的配置文件。特定于配置文件的`application-{profile}.properties`文件會優先于非特定于配置文件的屬性文件。

  • 應用程序外的 application-{profile}.properties
  • 應用程序外部的application.properties文件
  • 應用程序內的 application-{profile}.properties
  • 應用程序內的 application.properties
  • 操作系統環境變量
  • Java 系統屬性
  • 命令行參數 

2.2 應用程序外部加載屬性文件

默認情況下,Spring Boot會在項目的`src/main/resources`目錄中查找application.properties文件。然而,我們可以使用`spring.config.location`屬性來指定application.properties文件的外部位置。

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

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

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

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

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

默認其實也是支持從類路徑下的/config/中加載配置文件。

2.3 從默認 application.properties 加載屬性

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

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

Spring Boot 會自動加載這些文件中的屬性,并將其提供給應用程序。

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

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

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

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

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

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

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

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

2.6 通過環境變量傳遞/覆蓋屬性

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

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

這里的spring.datasource.url屬性被SPRING_DATASOURCE_URL環境變量所覆蓋。

2.7 通過系統屬性傳遞/覆蓋屬性

類似于環境變量,我們可以使用系統屬性來覆蓋屬性。系統屬性可以使用JVM命令行選項(-Dproperty=value)或在應用程序中通過編程方式設置。

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

請注意,系統屬性具有比屬性文件中或環境變量中定義的屬性更高的優先級。

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

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制造業

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編程開發

2024-11-21 16:30:21

2022-12-12 09:12:30

2022-05-09 13:35:56

云配置云安全黑客

2021-11-19 10:10:14

手機移動設備網絡攻擊

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

警報警報疲勞安全和運維團隊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品乱码一区二区三四区 | 亚洲一区二区三区视频 | 色www精品视频在线观看 | 欧美在线网站 | 欧美精品一区二区三区在线播放 | 国产福利在线 | 亚洲精品乱码久久久久久蜜桃 | 久久视频免费观看 | 黄视频免费在线 | 日韩精品二区 | 亚洲精品久久久 | 日韩精品a在线观看图片 | 日韩福利在线 | 欧美一区二区 | 久久精品播放 | 91一区二区在线观看 | 黄色免费在线观看网址 | 日本一二三区电影 | 国产视频一区二区在线观看 | 91精品国产一区二区三区动漫 | 国产精品成人一区二区三区 | 99成人| 久久久久国产一级毛片高清网站 | 国产精久久久久久久 | 久久成人精品视频 | 国产精品久久久久久久免费大片 | 欧美激情一区二区三级高清视频 | 中文字幕一区二区三区在线观看 | 久久区二区 | 国产精品99视频 | 欧美bondage紧缚视频 | 国产精品亚洲精品久久 | 羞羞视频网站在线观看 | 亚洲国产欧美日韩 | 国产精品v| 国产精品久久久久久久粉嫩 | 午夜视频一区二区 | 欧美www在线 | 精品国产伦一区二区三区观看说明 | 在线国产视频 | 欧美自拍一区 |