bootstrap.yml与spring.config.import导入nacos配置

在Spring Cloud项目里,将Nacos配置相关信息配置在bootstrap.yml(或bootstrap.properties)而不是application.yml(或application.properties)才能生效,这主要和Spring Cloud的配置加载顺序与机制有关,下面详细解释:

1. 配置加载顺序

Spring Cloud应用启动时,会按特定顺序加载配置,bootstrap.yml的加载时机早于application.yml

  • bootstrap.yml:它属于Spring Cloud Context上下文的一部分,在Spring Boot的主应用上下文(application.yml对应的上下文)创建之前加载。其作用是负责加载一些基础的、必要的配置信息,为后续应用的启动和配置加载提供支撑。
  • application.yml:这是Spring Boot默认的配置文件,在bootstrap.yml加载完成后才会加载,用于配置应用自身的一些常规属性。

2. Nacos配置加载原理

Nacos作为Spring Cloud的配置中心,在应用启动时需要提前获取相关配置信息,而这些信息依赖于一些基础配置,比如Nacos服务器地址、命名空间、Data ID等。

  • bootstrap.yml:由于它先被加载,所以可以在这里配置Nacos的连接信息和要加载的配置文件信息。Spring Cloud会依据这些配置,在主应用上下文创建之前就从Nacos服务器获取相应的配置,并将其注入到应用环境中。这样,当应用后续加载application.yml以及启动时,就能使用从Nacos获取的配置了。
  • application.yml:如果把Nacos的配置信息放在application.yml中,此时Spring Cloud还没有依据这些信息从Nacos获取配置,因为application.yml的加载是在Nacos配置获取机制启动之后,所以无法正确加载Nacos上的配置。

3. 示例说明

假设要从Nacos加载数据库配置,配置在bootstrap.ymlapplication.yml中的效果如下:

bootstrap.yml
spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        namespace: your-dev-namespace
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值