spring boot-18

用途

**`application.properties`**:

  • 是 Spring Boot 应用程序的核心配置文件。

  • 用于定义应用程序的各种配置属性,如数据库连接、端口号、日志级别等。

  • 应用程序的大多数配置都放在这个文件中。

**`bootstrap.properties`**:

  • 主要用于 Spring Cloud 的应用程序。

  • 用于在应用程序上下文初始化之前设置一些必要的配置,特别是在使用配置中心(如 Spring Cloud Config)时。

  • 适用于需要在应用程序启动之前加载的配置,例如配置中心的 URI、应用程序的名称等。

加载顺序

**`application.properties`**:

  • 在 Spring Boot 应用程序上下文加载时加载。

  • 通常在 `bootstrap.properties` 之后加载。

  • 用于大多数应用程序的配置。

**`bootstrap.properties`**:

  • 在 Spring Boot 应用程序上下文初始化之前加载。

  • 优先于 `application.properties` 加载。

  • 适用于需要在应用程序上下文加载之前进行初始化的配置。

典型配置项

**`application.properties`** 的典型配置项:

复制代码
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
logging.level.org.springframework.web=DEBUG

**`bootstrap.properties`** 的典型配置项:

复制代码
spring.application.name=myapp
spring.cloud.config.uri=http://localhost:8888

使用场景

**`application.properties`**:

  • 适用于绝大多数的 Spring Boot 应用程序配置。

  • 用于定义应用程序在运行时所需的所有配置。

**`bootstrap.properties`**:

  • 主要用于 Spring Cloud 环境,尤其是在使用 Spring Cloud Config 或其他配置中心时。

  • 用于定义应用程序在加载 Spring Boot 应用上下文之前所需的配置。

示例

**`application.properties` 示例**:

复制代码
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
logging.level.org.springframework.web=DEBUG

**`bootstrap.properties` 示例**:

复制代码
spring.application.name=myapp
spring.cloud.config.uri=http://localhost:8888

总结

bootstrap.properties和application.properties是Spring Boot项目中常用的两个配置文件。它们的作用和使用方式有一些区别,下面将详细介绍它们的区别。

bootstrap.properties是Spring Cloud项目中的配置文件,它主要用于配置Spring Cloud框架相关的配置属性。而application.properties是Spring Boot项目的配置文件,用于配置应用程序的一般属性。

首先,bootstrap.properties是在应用程序启动前加载的,用于提供一些应用程序运行所需的配置信息。它通常用于配置Spring Cloud的一些特性,如服务发现、配置中心等。而application.properties是在应用程序启动后加载的,用于配置应用程序的一般属性,如数据库连接、日志级别等。

另外,bootstrap.properties中的配置属性通常会被application.properties中的同名属性覆盖。这是因为bootstrap.properties的加载优先级高于application.properties,所以当两个配置文件中存在相同的属性时,会以bootstrap.properties中的值为准。这一特性使得bootstrap.properties可以用来配置全局的一些属性,而application.properties可以用来配置应用程序特有的属性。

此外,bootstrap.properties可以通过spring.cloud.bootstrap.location属性指定其加载位置,而application.properties的加载位置是固定的。这使得我们可以灵活地指定bootstrap.properties的加载位置,可以将其放置在外部的配置中心,实现集中管理和动态更新配置。

另一个区别是,bootstrap.properties中的配置属性通常是全局可用的,而application.properties中的配置属性通常是应用程序特定的。这是因为bootstrap.properties的加载时机较早,所以其中的配置属性在应用程序的各个组件中都可以使用。而application.properties的加载时机较晚,所以其中的配置属性通常只在应用程序的特定组件中使用。

最后,由于bootstrap.properties在应用程序启动前加载,所以它的配置属性可以用来配置一些需要在应用程序启动时就生效的功能,如数据源的初始化、外部服务的注册等。而application.properties的配置属性通常是在应用程序启动后才会生效的。

bootstrap.properties和application.properties在作用、加载顺序、加载位置和可用范围等方面有一些区别。它们分别用于配置Spring Cloud和Spring Boot项目的特定属性,具有不同的用途和使用方式。正确理解和合理使用这两个配置文件对于开发和运维Spring Boot和Spring Cloud项目都非常重要。

相关推荐
一只叫煤球的猫7 小时前
写代码很6,面试秒变菜鸟?不卖课,面试官视角走心探讨
前端·后端·面试
bobz9657 小时前
tcp/ip 中的多路复用
后端
bobz9658 小时前
tls ingress 简单记录
后端
皮皮林5519 小时前
IDEA 源码阅读利器,你居然还不会?
java·intellij idea
你的人类朋友9 小时前
什么是OpenSSL
后端·安全·程序员
bobz9659 小时前
mcp 直接操作浏览器
后端
前端小张同学11 小时前
服务器部署 gitlab 占用空间太大怎么办,优化思路。
后端
databook11 小时前
Manim实现闪光轨迹特效
后端·python·动效
武子康12 小时前
大数据-98 Spark 从 DStream 到 Structured Streaming:Spark 实时计算的演进
大数据·后端·spark
该用户已不存在12 小时前
6个值得收藏的.NET ORM 框架
前端·后端·.net