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

Spring?Boot各類變量的使用小結(jié)

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

1. 變量類型

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

2. 獲取變量

2.1 獲取方式

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

2.2 獲取方法

2.2.1 通過(guò)@Value注入獲取變量值

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

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

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

gateway.whitelist=/abc,/def

如果在JVM環(huán)境變量、操作系統(tǒng)環(huán)境變量、配置文件,程序啟動(dòng)參數(shù)中定義了相同的變量名,變量值的優(yōu)先級(jí)是:JVM環(huán)境變量 > 程序啟動(dòng)參數(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 變量的值,一定要將這個(gè)變量在操作系統(tǒng)環(huán)境變量中定義,如果這個(gè)變量在 application.properties、bootstrap.yml 中定義則將無(wú)法被獲取。

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

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 。通過(guò) java -jar 啟動(dòng) spring boot 程序時(shí),可通過(guò)使用 -Djasypt.encryptor.password=xxx 的方式設(shè)置JVM環(huán)境中的變量,示例如下:

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

2.2.4 Environment 獲取變量值

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

@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)境變量中未定義這個(gè)變量,則從配置文件(application.properties、bootstrap.yml)中獲取變量值。假設(shè) bootstrap.yml 中定義了

jasypt:
  encryptor:
    password: 123456789

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

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

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

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

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

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

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

demo.name=hello

程序啟動(dòng)時(shí)使用 java -jar demo.jar --demo.name=abc 啟動(dòng)程序,在程序中使用 Environment 對(duì)象獲取 demo.name 變量時(shí),獲取到的值是:abc

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

相關(guān)文章

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

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

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

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

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

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

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

    Spring?Cloud?OpenFeign實(shí)例介紹使用方法

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

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

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

    使用AOP的@Around后無(wú)返回值的解決

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

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

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

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

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

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

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

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

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

最新評(píng)論

泸州市| 仁寿县| 奈曼旗| 南华县| 太谷县| 无锡市| 洪江市| 曲阳县| 鹿邑县| 新竹县| 化州市| 威宁| 临泉县| 清新县| 时尚| 黄石市| 楚雄市| 巴里| 孝义市| 孝昌县| 安阳市| 百色市| 汕头市| 盈江县| 萨嘎县| 宜君县| 日照市| 即墨市| 古田县| 安庆市| 海阳市| 许昌市| 长丰县| 拜泉县| 博罗县| 北票市| 平陆县| 合阳县| 招远市| 伊金霍洛旗| 万源市|