bootstrap.yaml 和 application.yaml
所属分类 springboot
浏览量 154
在Spring Boot项目中,bootstrap.yaml 和 application.yaml 是两个常见的配置文件,
它们的主要区别在于加载顺序和使用场景。
bootstrap.yaml 用于配置应用启动时的关键属性,特别是与Spring Cloud相关的配置。
application.yaml 用于配置应用的常规属性。
在 Spring Cloud 项目中,Nacos 作为配置中心时,
配置通常放在 bootstrap.yml 或 bootstrap.properties 中,
而不是 application.yml 或 application.properties。
这是因为 Spring Cloud 应用启动时,会先加载 bootstrap 配置文件,
确保配置中心的相关配置(如 Nacos 的地址、命名空间等)在应用启动初期就可用。
禁用Nacos配置加载
spring.cloud.nacos.config.enabled: false
禁用服务注册
启动类 @EnableDiscoveryClient(autoRegister = false)
或者
spring.cloud.nacos.discovery.enabled=false
或者
spring.cloud.service-registry.auto-registration.enabled=false
1. 加载顺序
bootstrap.yaml:
这个文件在Spring Boot应用启动时最先加载,早于application.yaml。
它通常用于配置应用启动时所需的关键属性,如Spring Cloud Config的相关配置。
application.yaml:
这个文件在bootstrap.yaml之后加载,用于配置应用的常规属性。
2. 使用场景
bootstrap.yaml:
主要用于配置Spring Cloud应用的外部化配置(如从配置服务器获取配置)、加密/解密、以及应用启动时需要的其他关键配置。
例如:
spring:
cloud:
config:
uri: http://config-server:8888
fail-fast: true
application.yaml:
用于配置应用的常规属性,如数据库连接、服务器端口、日志配置等。
例如:
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
3. 依赖
bootstrap.yaml:
通常与Spring Cloud相关,依赖于spring-cloud-context库。
如果项目中没有使用Spring Cloud,可能不需要这个文件。
application.yaml:
是Spring Boot的标准配置文件,适用于所有Spring Boot应用。
4. 优先级
bootstrap.yaml: 由于它先加载,其中的配置优先级高于application.yaml。
如果在bootstrap.yaml中定义了某个属性,而在application.yaml中也定义了相同的属性,
bootstrap.yaml中的值会覆盖application.yaml中的值。
5. 环境特定配置
bootstrap.yaml: 也可以有环境特定的配置文件,如bootstrap-dev.yaml、bootstrap-prod.yaml等。
application.yaml: 同样支持环境特定的配置文件,如application-dev.yaml、application-prod.yaml等。
上一篇
下一篇
npm install
npm run dev
若依框架前端基础知识
LocalStorage 和 SessionStorage
vue3 script setup
vue3 Vue.createApp 说明