Spring Cloud BootstrapとConfig Data:従来の仕組み、最新への移行、ソースコード上の境界
結論
Spring Boot 2.4以降、リモート設定の中心的な入口はConfig Dataになった。
YAML
spring:
config:
import: optional:nacos:application.yaml
Bootstrapは、旧バージョンのSpring Cloud、互換モード、または特定の初期化要件で使われることがあるが、新規プロジェクトのデフォルト設計にはすべきでない。
1. 起動フェーズ
TEXT
Config Data 加载并合并 Environment -> ApplicationContext 创建
-> BeanDefinition 注册 -> Bean 初始化和后处理
Bootstrapコンテキストは、親コンテキストを生成して初期段階のPropertySourceを提供する。EnvironmentPostProcessorはEnvironmentを変更するための拡張ポイントであり、リモート設定クライアントそのものHEVではない。
2. Nacosへの移行
移行前に、Spring Boot、Spring Cloud、Spring Cloud Alibaba、Nacosのバージョン対応表を確認する。
YAML
spring:
application:
name: order-service
config:
import: optional:nacos:order-service.yaml
cloud:
nacos:
server-addr: <NACOS_SERVER_ADDR>
username: <NACOS_USERNAME>
password: <NACOS_PASSWORD>
バージョンごとにimport URI、拡張子、refreshのサポートが異なるため、異なるバージョンの設定を直接コピーして転用することはできない。
3. 移行チェックリスト
バージョンを固定する。bootstrapの設定を分割し、シークレットを移行する。起動失敗時の動作と、リフレッシュのライフサイクルを検証する。最後に、不要になったbootstrap starterを削除する。Bootstrapは旧システムの起動フローを学ぶのに向いているが、新規プロジェクトではConfig Dataをデフォルトにするべきだ。