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

相关推荐
-seventy-1 分钟前
Java Web 工程全貌
java
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ7 分钟前
idea 删除本地分支后,弹窗 delete tracked brank
java·ide·intellij-idea
言慢行善8 分钟前
idea出现的问题
java·ide·intellij-idea
杨荧18 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的宠物咖啡馆平台
java·开发语言·jvm·vue.js·spring boot·spring cloud·开源
Firechou24 分钟前
SpringBoot+MyBatis+MySQL的Point实现范围查找
spring boot·mysql·mybatis·point·范围查找·附近查找
喜欢打篮球的普通人32 分钟前
rust高级特征
开发语言·后端·rust
Ling_suu1 小时前
Spring——单元测试
java·spring·单元测试
ModelBulider1 小时前
十三、注解配置SpringMVC
java·开发语言·数据库·sql·mysql
苹果酱05671 小时前
C语言 char 字符串 - C语言零基础入门教程
java·开发语言·spring boot·mysql·中间件
csucoderlee1 小时前
eclipse mat leak suspects report和 component report的区别
java·ide·eclipse