亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot配置文件是怎樣的

發布時間:2021-09-29 15:22:19 來源:億速云 閱讀:151 作者:柒染 欄目:web開發

本篇文章為大家展示了SpringBoot配置文件是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

環境:springboot2.2.13

SpringBoot 中有以下兩種配置文件

  • bootstrap (.yml 或者 .properties)

  • application (.yml 或者 .properties)

接下來說下這兩個配置文件有什么區別!

bootstrap/ application 的區別

bootstrap.yml(bootstrap.properties)先加載

application.yml(application.properties)后加載

bootstrap.yml 用于應用程序上下文的引導階段,由父Spring  ApplicationContext加載。父ApplicationContext 被加載到使用application.yml的之前。

在 Spring Boot 中有兩種上下文,一種是 bootstrap, 另外一種是 application, bootstrap  是應用程序的父上下文,也就是說 bootstrap 加載優先于 applicaton。bootstrap  主要用于從額外的資源來加載配置信息,還可以在本地外部配置文件中解密屬性。這兩個上下文共用一個環境,它是任何Spring應用程序的外部屬性的來源。bootstrap  里面的屬性會優先加載,它們默認也不能被本地相同配置覆蓋也就是說bootstrap中的配置不能被覆蓋。

bootstrap/ application 的應用場景

application 配置文件這個容易理解,主要用于 Spring Boot 項目的自動化配置。

bootstrap 配置文件有以下幾個應用場景。

  • 使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap  配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;

  • 一些固定的不能被覆蓋的屬性

  • 一些加密/解密的場景;

以下是來自官方對bootstrap.[yml/properties]的一個說明:

A Spring Cloud application operates by creating a “bootstrap” context, which is a parent context for the main application. This context is responsible for loading configuration properties from the external sources and for decrypting properties in the local external configuration files. The two contexts share an Environment, which is the source of external properties for any Spring application. By default, bootstrap properties (not bootstrap.properties but properties that are loaded during the bootstrap phase) are added with high precedence, so they cannot be overridden by local configuration.  The bootstrap context uses a different convention for locating external configuration than the main application context. Instead of application.yml (or .properties), you can use bootstrap.yml, keeping the external configuration for bootstrap and main context nicely separate

 自定義配置文件

  1. @Configuration 

  2. @ConfigurationProperties(prefix = "pack") 

  3. @PropertySource(value = "classpath:config.properties") 

  4. public class PackProperties { 

  5.   private String name; 

  6.   private Integer age ; 


pack.name=xxxx pack.age=10

注意:@PropertySource只能加載properties文件不能加載yml文件。

導入Spring XML文件

@Configuration @ImportResource(locations = {"classpath:application-jdbc.xml", "classpath:application-aop.xml"}) public class ResourceConfig { }

application-jdbc.xml,application-aop.xml兩個配置文件必須是spring的配置文件。

配置文件默認值

有如下代碼:

@Value("${pack.name}") private String name ;

當配置文件中沒有配置pack.name時,這時候服務啟動會報錯,這時候我們可以通過設置默認值來防止錯誤。

@Value("${pack.name:xx}")     private String name ;

這里冒號 “:” 后面就是設置的默認值,這里也可以什么也不寫${pack.name:}。

加載制定環境的配置文件

一般我們都會為測試環境,開發環境,生產環境分別設置不同的配置文件,不同的環境加載不同的配置文件。

現有如下配置文件:

SpringBoot配置文件是怎樣的

生成環境加載prod文件,測試環境加載test文件,開發環境加載dev文件,只需在application.yml配置文件中加入如下配置。

spring:   profiles:     active:     - dev

這是在配置文件中寫死,我們也可以在命令行制定

java -jar xxxxx.jar --spring.profiles.active=dev

通過include包含多個配置文件,include是與環境無關的(也就是不管是什么環境都會加載)

spring:   profiles:     active:     - dev     include:     - cloud     - secret

 配置文件加載順序

查看

ConfigFileApplicationListener.java源碼,該文件中定義了從哪些地方加載配置文件。

加載順序:

  • file:./config/

  • file:./config/*/

  • file:./

  • classpath:config/

  • classpath:

優先級從高到低,高的覆蓋低的。

默認情況下加載的是application.yml或application.properties文件。

在啟動應用程序的時候可以制定配置文件的名稱

java -jar xxxxx.jar --spring.config.name=myapp

源碼:

SpringBoot配置文件是怎樣的

通過代碼讀取配置文件

@SpringBootApplication public class SpringBootJwtApplication implements ApplicationRunner{      public static void main(String[] args) {         SpringApplication.run(SpringBootJwtApplication.class, args);     }     @Override     public void run(ApplicationArguments args) throws Exception {         ClassPathResource resource = new ClassPathResource("config.properties");             try {                  Properties properties = PropertiesLoaderUtils.loadProperties(resource);                       System.out.println(properties) ;                      } catch (IOException e) {                     e.printStackTrace() ;         }     } }

這里通過PropertiesLoaderUtils工具類來加載資源

SpringBoot配置文件是怎樣的

上述內容就是SpringBoot配置文件是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临沂市| 原阳县| 抚远县| 教育| 鹤岗市| 库伦旗| SHOW| 常宁市| 蚌埠市| 革吉县| 南康市| 南宫市| 安乡县| 宁城县| 郓城县| 金昌市| 云南省| 乌恰县| 洪洞县| 依安县| 贞丰县| 谷城县| 越西县| 永宁县| 白朗县| 清水河县| 金寨县| 石狮市| 定南县| 英德市| 台前县| 抚顺县| 高尔夫| 陆河县| 霍邱县| 林芝县| 巢湖市| 措勤县| 榆树市| 卢湾区| 玉林市|