阅读(2335) (0)

Micronaut Bootstrap 配置

2023-02-23 11:07:32 更新

大多数应用程序配置存储在您的配置文件(例如 application.yml)、环境特定文件(如 application-{environment}.{extension}、环境和系统属性等)中。这些配置应用程序上下文。但是在应用程序启动期间,在创建应用程序上下文之前,可以创建一个“引导程序”上下文来存储必要的配置,以检索主上下文的附加配置。通常,该附加配置位于某些远程源中。

根据以下条件启用引导上下文。按以下顺序检查条件:

  • 如果设置了 BOOTSTRAP_CONTEXT_PROPERTY 系统属性,则该值确定是否启用引导上下文。

  • 如果设置了应用程序上下文构建器选项 bootstrapEnvironment,则该值确定是否启用引导上下文。

  • 如果存在 BootstrapPropertySourceLocator bean,则启用引导上下文。通常这来自 micronaut-discovery-client 依赖项。

在解析应用程序上下文配置属性之前必须存在的配置属性(例如,在使用分布式配置时)存储在引导程序配置文件中。一旦确定引导程序上下文已启用(如上所述),就会使用与常规应用程序配置相同的规则读取引导程序配置文件。唯一的区别是前缀(引导程序而不是应用程序)。

文件名前缀 bootstrap 可使用系统属性 micronaut.bootstrap.name 进行配置。

引导上下文配置会自动转移到主上下文,因此没有必要在主上下文中复制配置属性。此外,引导上下文配置的优先级高于主上下文,这意味着如果一个配置属性出现在两个上下文中,那么该值将首先从引导上下文中获取。

这意味着如果两个地方都需要一个配置属性,它应该进入引导上下文配置。

Bootstrap 上下文 Bean

为了使 bean 在 bootstrap 上下文中可解析,它必须用 @BootstrapContextCompatible 注释。如果任何给定的 bean 没有被注释,那么它将无法在引导上下文中被解析。通常,任何参与检索分布式配置过程的 bean 都需要进行注释。