W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
應(yīng)用程序環(huán)境由 Environment 接口建模,它允許在創(chuàng)建 ApplicationContext 時指定一個或多個唯一的環(huán)境名稱。
初始化環(huán)境
Java | Groovy | Kotlin |
|
|
|
活動環(huán)境名稱允許根據(jù)環(huán)境加載不同的配置文件,還可以使用 @Requires 注釋有條件地加載 bean 或 bean @Configuration 包。
此外,Micronaut 會嘗試檢測當前環(huán)境。例如,在 Spock 或 JUnit 測試中,TEST 環(huán)境會自動激活。
可以使用 micronaut.environments 系統(tǒng)屬性或 MICRONAUT_ENVIRONMENTS 環(huán)境變量指定其他活動環(huán)境。這些被指定為逗號分隔的列表。例如:
指定環(huán)境
$ java -Dmicronaut.environments=foo,bar -jar myapp.jar
以上激活了名為 foo 和 bar 的環(huán)境。
最后,還檢測到云環(huán)境名稱。
環(huán)境優(yōu)先
Micronaut 根據(jù)指定的環(huán)境加載屬性源,如果相同的屬性鍵存在于特定于環(huán)境的多個屬性源中,則環(huán)境順序決定使用哪個值。
Micronaut 使用以下層次結(jié)構(gòu)進行環(huán)境處理(優(yōu)先級從低到高):
推導(dǎo)環(huán)境
來自 micronaut.environments 系統(tǒng)屬性的環(huán)境
來自 MICRONAUT_ENVIRONMENTS 環(huán)境變量的環(huán)境
通過應(yīng)用程序上下文構(gòu)建器明確指定的環(huán)境
這也適用于 @MicronautTest(environments = … )
禁用環(huán)境檢測
可以通過將 micronaut.env.deduction 系統(tǒng)屬性或 MICRONAUT_ENV_DEDUCTION 環(huán)境變量設(shè)置為 false 來禁用環(huán)境的自動檢測。這可以防止 Micronaut 檢測當前環(huán)境,同時仍然使用如上所示專門提供的任何環(huán)境。
通過系統(tǒng)屬性禁用環(huán)境檢測
$ java -Dmicronaut.env.deduction=false -jar myapp.jar
或者,您可以在設(shè)置應(yīng)用程序時使用 ApplicationContextBuilder deduceEnvironment 方法禁用環(huán)境推導(dǎo)。
使用 ApplicationContextBuilder 禁用環(huán)境推導(dǎo)
Java | Groovy | Kotlin |
|
|
|
默認環(huán)境
Micronaut 支持一個或多個默認環(huán)境的概念。默認環(huán)境是僅在沒有明確指定或推導(dǎo)其他環(huán)境時才應(yīng)用的環(huán)境。可以通過應(yīng)用程序上下文構(gòu)建器 Micronaut.build().environments(… )、micronaut.environments 系統(tǒng)屬性或 MICRONAUT_ENVIRONMENTS 環(huán)境變量顯式指定環(huán)境??梢酝茢喹h(huán)境以自動應(yīng)用適合云部署的環(huán)境。如果通過上述任何一種方式找到環(huán)境,則不會應(yīng)用默認環(huán)境。
要設(shè)置默認環(huán)境,請包含一個實現(xiàn) ApplicationContextConfigurer 并使用 ContextConfigurer 注釋的公共靜態(tài)類:
public class Application {
@ContextConfigurer
public static class DefaultEnvironmentConfigurer implements ApplicationContextConfigurer {
@Override
public void configure(@NonNull ApplicationContextBuilder builder) {
builder.defaultEnvironments(defaultEnvironment);
}
}
public static void main(String[] args) {
Micronaut.run(Application.class, args);
}
}
以前,我們建議使用 Micronaut.defaultEnvironments("dev"),但這不允許提前 (AOT) 編譯器檢測默認環(huán)境。
從 Micronaut 2.3 開始,應(yīng)用程序啟動時會顯示一個橫幅。它默認啟用,它還顯示 Micronaut 版本。
$ ./gradlew run
__ __ _ _
| \/ (_) ___ _ __ ___ _ __ __ _ _ _| |_
| |\/| | |/ __| '__/ _ \| '_ \ / _` | | | | __|
| | | | | (__| | | (_) | | | | (_| | |_| | |_
|_| |_|_|\___|_| \___/|_| |_|\__,_|\__,_|\__|
Micronaut (3.8.6)
17:07:22.997 [main] INFO io.micronaut.runtime.Micronaut - Startup completed in 611ms. Server Running: http://localhost:8080
要使用您自己的 ASCII 藝術(shù)(此時只是普通的 ASCII)自定義橫幅,請創(chuàng)建文件 src/main/resources/micronaut-banner.txt,它將被使用。
要禁用它,請修改您的應(yīng)用程序類:
public class Application {
public static void main(String[] args) {
Micronaut.build(args)
.banner(false) (1)
.start();
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: