日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

bean覆盖 springboot_Springboot配置加载覆盖值顺序

發布時間:2024/9/19 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bean覆盖 springboot_Springboot配置加载覆盖值顺序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Springboot允許您將配置外部化,以便在不同的環境中使用相同的應用程序代碼。可以使用properties文件、yaml文件、環境變量和命令行參數來外部化配置。屬性值可以通過使用@Value注釋直接注入bean,通過Spring的環境抽象訪問,或者通過@ConfigurationProperties綁定到結構化對象。

Springboo使用了一個非常特殊的 PropertySource 順序,該順序設計為允許合理地覆蓋值。屬性按以下順序考慮:

1、開發工具主目錄上的全局設置屬性(~/.spring-boot-devtools.properties,當開發工具處于活動狀態時)

2、測試中的@TestPropertySource注解

3、測試的屬性。在@SpringBootTest和測試注釋上提供,用于測試應用程序的特定部分。

4、命令行參數

5、SPRING_APPLICATION_JSON的屬性(嵌入在環境變量或系統屬性中的內聯json)。

6、ServletConfig 初始化參數

7、ServletContext 初始化參數

8、java:comp/env的JNDI參數

9、Java系統屬性(System.getProperties()).

10、操作系統環境變量.

11、RandomValuePropertySource,其屬性僅為random.*。

12、在打包的JAR之外配置特定的應用程序屬性(application-{profile}.properties和yaml變量)。

13、在打包的JAR之中配置特定的應用程序屬性(application-{profile}.properties和yaml變量)

14、打包JAR之外的應用程序屬性(application.properties和yaml變量)。

15、打包JAR之內的應用程序屬性(application.properties和yaml變量)。

16、@PropertySource注解在你的@Configuration 類.

17、默認屬性(通過設置SpringApplication.setDefaultProperties指定)。

為了提供一個具體的示例,假設您開發了一個使用name屬性的@Component,如下例所示:

import org.springframework.stereotype.*;

import org.springframework.beans.factory.annotation.*;

@Component

public class MyBean{

@Value("${name}")

private String name;

// ...

}

在應用程序類路徑(例如,在JAR中)上,可以有一個application.properties文件,該文件為name提供了一個合理的默認屬性值。在新環境中運行時,可以在jar外部提供application.properties文件來覆蓋名稱。對于一次性測試,您可以使用特定的命令行開關(例如,java -jar app.jar --name="Spring")啟動。

可以在命令行上使用環境變量提供SPRING_APPLICATION_JSON屬性。例如,可以在un*x shell中使用以下行:

$ SPRING_APPLICATION_JSON='{"acme":{"name":"test"}}' java -jar myapp.jar

在前面的示例中,您將在Spring環境中得到 acme.name=test。您還可以在系統屬性中以spring.application.json的形式提供json,如下例所示:

$java -Dspring.application.json='{"name":"test"}' -jar myapp.jar

還可以使用命令行參數提供JSON,如下例所示:

$java -jar myapp.jar --spring.application.json='{"name":"test"}'

您還可以將JSON提供為JNDI變量,如下:java:comp/env/spring.application.json

總結

以上是生活随笔為你收集整理的bean覆盖 springboot_Springboot配置加载覆盖值顺序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。