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项目都非常重要。

相关推荐
bbsh20992 分钟前
动易.NET系列产品:Safari浏览器登录后台提示登录信息过期的问题
java·.net·safari
想起你的日子9 分钟前
Android studio 实现弹出表单编辑界面
java·前端·android studio
Java致死2 小时前
设计模式Java
java·开发语言·设计模式
源码方舟2 小时前
SpringBoot + Shiro + JWT 实现认证与授权完整方案实现
java·spring boot·后端
2401_cf5 小时前
为什么hadoop不用Java的序列化?
java·hadoop·eclipse
帮帮志5 小时前
idea整合maven环境配置
java·maven·intellij-idea
LuckyTHP6 小时前
java 使用zxing生成条形码(可自定义文字位置、边框样式)
java·开发语言·python
热河暖男6 小时前
【实战解决方案】Spring Boot+Redisson构建高并发Excel导出服务,彻底解决系统阻塞难题
spring boot·后端·excel
无声旅者8 小时前
深度解析 IDEA 集成 Continue 插件:提升开发效率的全流程指南
java·ide·ai·intellij-idea·ai编程·continue·openapi
0吉光片羽08 小时前
【SpringBoot】集成kafka之生产者、消费者、幂等性处理和消息积压
spring boot·kafka·linq