最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Boot各類變量的使用小結

 更新時間:2024年01月12日 12:05:44   作者:hzwy23  
這篇文章主要介紹了Spring?Boot各類變量的使用小結,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

1. 變量類型

  • 操作系統(tǒng)環(huán)境變量
  • JVM環(huán)境變量
  • 配置文件變量
  • 程序啟動參數(shù)變量

2. 獲取變量

2.1 獲取方式

  • @Value 注入獲取變量值
  • System.genenv 獲取變量值
  • System.getProperty 獲取變量值
  • Environment 獲取變量值
  • @ConfigurationProperties 獲取變量
  • args 程序參數(shù)變量

2.2 獲取方法

2.2.1 通過@Value注入獲取變量值

@Value注入變量用于從SpringBoot項目Environment對象中獲取變量值,Environment 對象中的變量來源于配置文件,程序啟動參數(shù)、JVM環(huán)境變量、操作系統(tǒng)環(huán)境變量。程序啟動參數(shù)與配置文件中定義了相同的變量時,程序啟動參數(shù)將會覆蓋配置文件中變量的值。

@Value("${gateway.whitelist}")
private String[] whiteList;

從配置文件中獲取變量值,如在 application.properties、bootstrap.yml 等定義好環(huán)境變量后,程序中可通過 @Value 注入變量的方式獲取變量值。例如在 application.properties 中定義變量:

gateway.whitelist=/abc,/def

如果在JVM環(huán)境變量、操作系統(tǒng)環(huán)境變量、配置文件,程序啟動參數(shù)中定義了相同的變量名,變量值的優(yōu)先級是:JVM環(huán)境變量 > 程序啟動參數(shù) > 操作系統(tǒng)環(huán)境變量 > 配置文件參數(shù)

2.2.2 System.genenv 獲取變量值

System.getenv() 是 Java 內(nèi)置方法,用于獲取操作系統(tǒng)環(huán)境變量。

String password = System.getProperty("jasypt_encryptor_password");

獲取操作系統(tǒng)環(huán)境變量,采用這種方式獲取 jasypt_encryptor_password 變量的值,一定要將這個變量在操作系統(tǒng)環(huán)境變量中定義,如果這個變量在 application.properties、bootstrap.yml 中定義則將無法被獲取。

在操作系統(tǒng)中定義環(huán)境變量時,變量名中不能有 . 號,例如 jasypt.encryptor.password 不能設置成操作系統(tǒng)的環(huán)境變量??梢允褂胈 來代替 . 號。

2.2.3 System.getProperty 獲取變量值

System.getProperty() 是Java 內(nèi)置方法,用于獲取JVM環(huán)境變量。

String password = System.getProperty("jasypt.encryptor.password");

獲取JVM環(huán)境中的變量值,需要在JVM環(huán)境中定義 jasypt.encryptor.password 。通過 java -jar 啟動 spring boot 程序時,可通過使用 -Djasypt.encryptor.password=xxx 的方式設置JVM環(huán)境中的變量,示例如下:

java -jar -Djasypt.encryptor.password=xxx demo.jar

2.2.4 Environment 獲取變量值

從SpringBoot項目Environment對象中獲取變量值,Environment 對象中的變量來源于配置文件,程序啟動參數(shù)、JVM環(huán)境變量、操作系統(tǒng)環(huán)境變量。程序啟動參數(shù)與配置文件中定義了相同的變量時,程序啟動參數(shù)將會覆蓋配置文件中變量的值。

@Autowired
private Environment environment;
String password = environment.getProperty("jasypt.encryptor.password");

如果操作系統(tǒng)環(huán)境變量中定義了 jasypt_encryptor_password 變量,則變量值為操作系統(tǒng)環(huán)境變量中的值,如果操作系統(tǒng)環(huán)境變量中未定義這個變量,則從配置文件(application.propertiesbootstrap.yml)中獲取變量值。假設 bootstrap.yml 中定義了

jasypt:
  encryptor:
    password: 123456789

通過 environment.getProperty("jasypt.encryptor.password") 將會獲取到變量的值為 123456789。
如果在JVM環(huán)境變量、操作系統(tǒng)環(huán)境變量、配置文件,程序啟動參數(shù)中定義了相同的變量名,變量值的優(yōu)先級是:JVM環(huán)境變量 > 程序啟動參數(shù) > 操作系統(tǒng)環(huán)境變量 > 配置文件參數(shù)

2.2.5 @ConfigurationProperties 獲取變量值

@Configuration
@ConfigurationProperties(prefix = "demo.kv")
@Data
public class AppSecurity {
    private Map<String, String> apps;
}

從配置文件(application.propertiesbootstrap.yml)中獲取變量。在 bootstrap.yml 中定義變量:

demo:
  kv:
    apps:
      key111: 1230678913234
      key112: 12306789fdfdf4

2.2.6 SpringApplication.run 程序啟動參數(shù)中獲取變量值

public static void main(String[] args) {
    SpringApplication.run(BootstrapApplication.class, args);
    for (String arg : args) {
        System.out.println(arg);
    }
}
// output: --demo.name=abc

程序啟動參數(shù)變量是程序啟動時傳入的變量. java -jar 啟動程序時使用 -- 傳入程序啟動參數(shù)變量。例如在程序啟動時,傳入 demo.name 的變量:

java -jar demo.jar --demo.name=abc

采用這種方式定義變量后,這些參數(shù)會被添加到 Environment 環(huán)境變量中,如果在配置文件中已經(jīng)定義了 demo.name 變量,則通過 --demo.name 變量將會覆蓋之前在配置文件中定義的變量值。例如:application.properties 中配置信息是:

demo.name=hello

程序啟動時使用 java -jar demo.jar --demo.name=abc 啟動程序,在程序中使用 Environment 對象獲取 demo.name 變量時,獲取到的值是:abc

到此這篇關于Spring Boot各類變量的使用的文章就介紹到這了,更多相關Spring Boot變量使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • idea查看java文件的全部接口的操作方法

    idea查看java文件的全部接口的操作方法

    在Java項目開發(fā)中,快速查看和理解接口至關重要,通過IntelliJ IDEA,開發(fā)人員可以高效地瀏覽Java文件中的所有接口信息,本文介紹了在IDEA中實現(xiàn)查看Java文件全部接口的方法,感興趣的朋友一起看看吧
    2024-10-10
  • Java GraphQL數(shù)據(jù)加載器批處理的實現(xiàn)詳解

    Java GraphQL數(shù)據(jù)加載器批處理的實現(xiàn)詳解

    GraphQL 數(shù)據(jù)加載器是優(yōu)化 GraphQL API 的關鍵組件,旨在解決臭名昭著的 N+1 查詢問題,在本中,我們將深入研究其批處理功能,感興趣的小伙伴可以了解下
    2023-12-12
  • Java中死鎖與活鎖的具體實現(xiàn)

    Java中死鎖與活鎖的具體實現(xiàn)

    鎖發(fā)生在不同的請求中,本文主要介紹了Java中死鎖與活鎖,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Spring?Cloud?OpenFeign實例介紹使用方法

    Spring?Cloud?OpenFeign實例介紹使用方法

    Spring?Cloud?OpenFeign?對?Feign?進行了二次封裝,使得在?Spring?Cloud?中使用?Feign?的時候,可以做到使用?HTTP?請求訪問遠程服務,就像調(diào)用本地方法一樣的,開發(fā)者完全感知不到這是在調(diào)用遠程訪問,更感知不到在訪問?HTTP?請求
    2022-09-09
  • Java讀寫文件創(chuàng)建文件夾多種方法示例詳解

    Java讀寫文件創(chuàng)建文件夾多種方法示例詳解

    這篇文章主要介紹了Java讀寫文件創(chuàng)建文件夾等多種操作的方法,大家參考使用吧
    2013-11-11
  • 使用AOP的@Around后無返回值的解決

    使用AOP的@Around后無返回值的解決

    這篇文章主要介紹了使用AOP的@Around后無返回值的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 如何使用Reactor完成類似Flink的操作

    如何使用Reactor完成類似Flink的操作

    這篇文章主要介紹了如何使用Reactor完成類似Flink的操作,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下
    2021-03-03
  • Java消息隊列JMS實現(xiàn)原理解析

    Java消息隊列JMS實現(xiàn)原理解析

    這篇文章主要介紹了Java消息隊列JMS實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 日志模塊自定義@SkipLogAspect注解跳過切面的操作方法

    日志模塊自定義@SkipLogAspect注解跳過切面的操作方法

    文章介紹了一個自定義注解@SkipLogAspect,用于在日志模塊中跳過特定方法的日志切面,這個注解可以用于需要避免大對象轉換為JSON時導致的OOM問題,文章還提供了注解的實現(xiàn)代碼以及一個測試示例,展示了如何在控制器中使用該注解來跳過日志切面,感興趣的朋友一起看看吧
    2025-02-02
  • vue2向springboot傳值接收不到的解決方法

    vue2向springboot傳值接收不到的解決方法

    本文主要介紹了vue2向springboot傳值接收不到的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論

沂南县| 泾阳县| 大化| 托克逊县| 三台县| 蒙山县| 昔阳县| 伊川县| 松潘县| 柘城县| 兴仁县| 城口县| 垦利县| 遂宁市| 宁安市| 特克斯县| 龙海市| 汽车| 邯郸县| 固原市| 稻城县| 南昌县| 贺兰县| 南江县| 交口县| 都匀市| 垣曲县| 武穴市| 六安市| 砚山县| 财经| 吉隆县| 金堂县| 深水埗区| 华宁县| 新竹市| 通化市| 宕昌县| 和平县| 通榆县| 遂昌县|