Spring Cloud Bootstrap 与 Config Data:历史机制、现代迁移和源码边界
Spring Cloud Bootstrap 与 Config Data:历史机制、现代迁移和源码边界
结论
Spring Boot 2.4 之后,远程配置的主流入口是 Config Data:
spring:
config:
import: optional:nacos:application.yaml
Bootstrap 仍可能用于旧版 Spring Cloud、兼容模式或特定早期初始化需求,但不应作为新项目默认设计。
1. 启动阶段
Config Data 加载并合并 Environment -> ApplicationContext 创建
-> BeanDefinition 注册 -> Bean 初始化和后处理
Bootstrap context 会创建父上下文提供早期 PropertySource。EnvironmentPostProcessor 是修改 Environment 的扩展点,不是远程配置客户端本身。
2. Nacos 迁移
迁移前先确认 Spring Boot、Spring Cloud、Spring Cloud Alibaba 和 Nacos 版本矩阵:
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 才是新项目默认设计。