自学内容网 自学内容网

Springboot配置优先级

1. 各种配置介绍

SpringBoot项目当中,我们要想配置一个属性,可以通过这五种方式当中的任意一种来配置都可 以,那么如果项目中同时存在这五种配置文件,且都配置了同一个属性,如:Tomcat端口号,到底哪一份配置文件生效呢?

1.1 application.properties

server.port=8081

1.2 application.yml

server:
 port: 8082

1.3 application.yaml

server:
 port: 8083

1.4 系统属性配置

格式: -Dkey=value

-Dserver.port=9000

1.5 命令行参数

格式:--key=value

--server.port=10010

如果项目已经打包上线了,这个时候我们又如何来设置Java系统属性和命令行参数呢?

java -Dserver.port=9000 -jar XXXXX.jar --server.port=10010

2. Spring Boot 配置优先级

在 Spring Boot 项目中,配置文件有三种常见的格式:application.propertiesapplication.ymlapplication.yaml。如果项目中同时存在多个配置文件且包含相同的属性配置,比如 Tomcat 端口号,Spring Boot 会根据以下优先级来决定哪个配置生效:

  • 优先级最高application.properties
  • 其次application.yml
  • 最低application.yaml

此外,Spring Boot 还支持其他两种配置方式:

  • Java 系统属性:通过 -Dkey=value 格式配置,如 -Dserver.port=9000
  • 命令行参数:通过 --key=value 格式配置,如 --server.port=10010

最终的配置优先级从低到高依次为:

  1. application.yaml
  2. application.yml
  3. application.properties
  4. Java 系统属性(-Dxxx=xxx
  5. 命令行参数(--xxx=xxx

注意事项:

虽然springboot支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置。(yml是主流)


原文地址:https://blog.csdn.net/qq_46637011/article/details/142769651

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!