亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

彈簧不考慮環境變量

彈簧不考慮環境變量

米脂 2022-08-03 15:05:48
在我的項目中,我為每個環境提供了單獨的 application.yml 文件,每個文件夾內都有一個環境。注:下面紅色的yml文件臨時制作,使代碼工作。但修復后應將其刪除。所以我想要的是根據環境使用單獨的appplication.yml文件。特別是我需要使用local/application.yml進行本地開發下面有一個在我的項目中獲取 env 變量的示例@Component@Configurationpublic class ApplicationProperties {    @Value("${ex.my.url}")    private String myServiceUrl;   // getters setters and nedded stuff}但它不起作用,因為找不到提及所需環境的方法。因為它位于單獨的文件夾中。所有其他示例都提到了在沒有單獨文件夾的情況下獲取資源文件夾內的yml文件的方法。該問題的任何修復?
查看完整描述

4 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

在我的項目中,我使用VM選項指定了一個配置文件:-Dspring.profiles.active=local

然后我有一個名為appplication-local.yml的文件

在生產中: -Dspring.profiles.active=prod , 將使用文件 application-prod.yml


查看完整回答
反對 回復 2022-08-03
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

經典的解決方案是設置一個配置文件(我更喜歡屬性,因為我是理智的),并允許在每個已安裝的主機上放置一個覆蓋文件。


Spring支持這種開箱即用的功能。


下面是一個示例:


public static void main(final String[] argumentArray)

{

  final StringApplicationBuilder springApplicationBuilder;


  springApplicationBuilder = new SpringApplicationBuilder(YourSpringBootApplication.class)


  springApplicationBuilder.properties(

    "spring.config.location=classpath:/yourConfig.properties,/some/path/to/overrides/directory/yourConfig.properties");


  springApplicationBuilder.build().run(argumentArray);

}


查看完整回答
反對 回復 2022-08-03
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

在資源文件夾中

請製作 application.yml、application-local.yml、application-dev.yml 等的檔案。你想要什么

然后在應用程序中.yml

 spring.profile.active = ${ENV}

現在,在運行期間,在 Intellij 下指定運行/調試配置中的 ENV 變量,或者提及要在 application.yml 中為其構建 jar 的配置文件。

或者,您可以使用 -D spring.profile.active=dev


查看完整回答
反對 回復 2022-08-03
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

首先,從文檔中可以看出:

SpringApplication 從 application.properties 文件中加載以下位置的屬性,并將它們添加到 Spring 環境中:

  1. 當前目錄的 /config 子目錄

  2. 當前目錄

  3. 類路徑 /配置包

  4. 類路徑根

因此,使用傳遞的目錄層次結構,您將遇到問題。

對于文件規范,您可以使用配置文件。其工作原理如下:

  • 如果沒有指定的配置文件 - 將使用application.properties

  • 對于任何其他配置文件也將使用具有名稱的配置文件application-<name>.properties

因此,如果您指定和配置文件,則屬性 ,'application-cool.properties, 將處于使用狀態devcoolapplication.propertiesapplication-dev.properties

更新:

您可以傳遞屬性文件路徑指定,但是如果您想要目錄層次結構,則需要使用 和 ApplicationContextInitializer 進行一些自定義spring.config.locationcontext.initializers.classes


查看完整回答
反對 回復 2022-08-03
  • 4 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號