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