Micronaut Bootstrap 配置

2023-03-01 16:35 更新

大多數(shù)應(yīng)用程序配置存儲(chǔ)在您的配置文件(例如 application.yml)、環(huán)境特定文件(如 application-{environment}.{extension}、環(huán)境和系統(tǒng)屬性等)中。這些配置應(yīng)用程序上下文。但是在應(yīng)用程序啟動(dòng)期間,在創(chuàng)建應(yīng)用程序上下文之前,可以創(chuàng)建一個(gè)“引導(dǎo)程序”上下文來(lái)存儲(chǔ)必要的配置,以檢索主上下文的附加配置。通常,該附加配置位于某些遠(yuǎn)程源中。

根據(jù)以下條件啟用引導(dǎo)上下文。按以下順序檢查條件:

  • 如果設(shè)置了 BOOTSTRAP_CONTEXT_PROPERTY 系統(tǒng)屬性,則該值確定是否啟用引導(dǎo)上下文。

  • 如果設(shè)置了應(yīng)用程序上下文構(gòu)建器選項(xiàng) bootstrapEnvironment,則該值確定是否啟用引導(dǎo)上下文。

  • 如果存在 BootstrapPropertySourceLocator bean,則啟用引導(dǎo)上下文。通常這來(lái)自 micronaut-discovery-client 依賴項(xiàng)。

在解析應(yīng)用程序上下文配置屬性之前必須存在的配置屬性(例如,在使用分布式配置時(shí))存儲(chǔ)在引導(dǎo)程序配置文件中。一旦確定引導(dǎo)程序上下文已啟用(如上所述),就會(huì)使用與常規(guī)應(yīng)用程序配置相同的規(guī)則讀取引導(dǎo)程序配置文件。唯一的區(qū)別是前綴(引導(dǎo)程序而不是應(yīng)用程序)。

文件名前綴 bootstrap 可使用系統(tǒng)屬性 micronaut.bootstrap.name 進(jìn)行配置。

引導(dǎo)上下文配置會(huì)自動(dòng)轉(zhuǎn)移到主上下文,因此沒(méi)有必要在主上下文中復(fù)制配置屬性。此外,引導(dǎo)上下文配置的優(yōu)先級(jí)高于主上下文,這意味著如果一個(gè)配置屬性出現(xiàn)在兩個(gè)上下文中,那么該值將首先從引導(dǎo)上下文中獲取。

這意味著如果兩個(gè)地方都需要一個(gè)配置屬性,它應(yīng)該進(jìn)入引導(dǎo)上下文配置。

Bootstrap 上下文 Bean

為了使 bean 在 bootstrap 上下文中可解析,它必須用 @BootstrapContextCompatible 注釋。如果任何給定的 bean 沒(méi)有被注釋,那么它將無(wú)法在引導(dǎo)上下文中被解析。通常,任何參與檢索分布式配置過(guò)程的 bean 都需要進(jìn)行注釋。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)