欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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 不能設(shè)置成操作系統(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 的方式設(shè)置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)中獲取變量值。假設(shè) 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.properties、bootstrap.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

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

相關(guān)文章

  • 教你利用SpringBoot寫一個屬于自己的Starter

    教你利用SpringBoot寫一個屬于自己的Starter

    如果我們將可獨立于業(yè)務(wù)代碼之外的功配置模塊封裝成一個個starter,復(fù)用的時候只需要將其在pom中引用依賴即可,SpringBoot為我們完成自動裝配,簡直不要太爽,這篇文章主要給大家介紹了關(guān)于如何利用SpringBoot寫一個屬于自己的Starter,需要的朋友可以參考下
    2022-03-03
  • Java Web使用簡單的批處理操作(記事本+Tomcat)

    Java Web使用簡單的批處理操作(記事本+Tomcat)

    這篇文章主要介紹了Java Web使用簡單的批處理操作 ,需要的朋友可以參考下
    2014-10-10
  • java中類與對象的使用詳情

    java中類與對象的使用詳情

    這篇文章主要介紹了java中類與對象的使用詳情,面向?qū)ο笫峭ㄟ^類和對象去描述和代表萬千事物對象的,首先我們需要知道如何去定義一個類,下面文章我們詳細(xì)介紹兩者的使用方法,需要的小伙伴可以參考一下
    2022-05-05
  • java彩色瓷磚編程題分析

    java彩色瓷磚編程題分析

    這篇文章主要介紹了java彩色瓷磚編程題的詳細(xì)解題思路以及解決方法分享,對此有興趣的參考下。
    2018-02-02
  • json如何解析混合數(shù)組對象到實體類的list集合里去

    json如何解析混合數(shù)組對象到實體類的list集合里去

    這篇文章主要介紹了json解析混合數(shù)組對象到實體類的list集合里去的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring?Boot?Jwts?Token生成方法示例

    Spring?Boot?Jwts?Token生成方法示例

    這篇文章主要為大家介紹了Spring?Boot?Jwts?Token生成方法示例,非適合java初學(xué)者,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • java實現(xiàn)文件保存到本地的方法

    java實現(xiàn)文件保存到本地的方法

    本篇文章主要介紹了java實現(xiàn)文件保存到本地的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Spring基礎(chǔ)之AOP的概念介紹

    Spring基礎(chǔ)之AOP的概念介紹

    AOP是Spring的關(guān)鍵特性之一,雖然Spring的IOC特性并不依賴于AOP,本文重點介紹AOP編程中的一些術(shù)語,這些術(shù)語不僅僅局限于Spring,它適用于所有的AOP編程,感興趣的朋友一起看看吧
    2022-06-06
  • java 替換docx文件中的字符串方法實現(xiàn)

    java 替換docx文件中的字符串方法實現(xiàn)

    這篇文章主要介紹了java 替換docx文件中的字符串方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • spring?retry實現(xiàn)方法請求重試的使用步驟

    spring?retry實現(xiàn)方法請求重試的使用步驟

    這篇文章主要介紹了spring?retry實現(xiàn)方法請求重試及使用步驟,本文分步驟通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論