簡體   English   中英

在本地,使用 IntelliJ 傳遞的環境變量在 spring 引導批處理中不起作用

[英]In local, environment variable passed with IntelliJ is not working in spring boot batch

我正在使用 Spring Boot Gradle 插件並在 Mac 上的 Intellij 中開發,

我正在嘗試通過環境變量獲取值但無法獲取它,(傳遞 3 個變量,其中只有一個 systemDate 無法訪問)。

Intellij 中的環境變量設置如下。 在此處輸入圖像描述

我還嘗試將其設置為 IntelliJ 中的 Override 配置屬性,如下所示, 在此處輸入圖像描述

我訪問它的代碼如下。

String systemDate = Objects
        .toString(chunkContext.getStepContext().getJobParameters().get("systemDate"), "");

※相同的代碼在暫存環境中工作。 在分期中,我正在傳遞 systemDate 如下所示,

java -Dspring.profiles.active=stg -Dspring.batch.job.names=abcPaymentJob -jar /var/lib/jenkins/deploy/stg/newAbcBatch.jar systemDate=2022-10-20T10:15:30

您正在將這些鍵/值對設置為環境變量,但您試圖在此處將它們作為作業參數:

chunkContext.getStepContext().getJobParameters()

作業參數和環境變量是兩個不同的東西。 您要么需要:

  • 將這些鍵/值對作為作業參數傳遞。 在命令行上,應該像jar -jar myjob.jar systemDate=2022-10-20T10:15:30這樣傳遞。 在 IntelliJ 中,相當於將它們作為“程序參數”傳遞給“運行/調試配置 -> 構建和運行”部分
  • 或使用System.getenv("systemDate"); 或通過 Spring 的環境支持

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM