一问详解SpringBoot配置文件优先级

作者:yfs1024 时间:2023-01-08 05:40:14 

SpringBoot项目当中支持的三类配置文件:

  • application.properties

  • application.yml

  • application.yaml

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

application.properties

server.port=8081

application.yml

server:
  port: 8082

application.yaml

server:
  port: 8082

我们启动SpringBoot程序,测试下三个配置文件中哪个Tomcat端口号生效:

properties、yaml、yml三种配置文件同时存在

一问详解SpringBoot配置文件优先级

properties、yaml、yml三种配置文件,优先级最高的是properties

yaml、yml两种配置文件同时存在

一问详解SpringBoot配置文件优先级

优先级:

properties文件 > yml > yaml

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

打包文件:

一问详解SpringBoot配置文件优先级

这个时候就会在target目录中生成一个jar包. 此时就可以通过在jar包目录的cmd下输入java -jar jar包名

问题: 如果在运行jar包的时候,当前的端口被占用怎么解决,总不能重新打开吧?

在SpringBoot项目当中除了以上3种配置文件外,SpringBoot为了增强程序的扩展性,除了支持配置文件的配置方式以外,还支持另外两种常见的配置方式:

Java系统属性配置 (格式: -Dkey=value)

-Dserver.port=9000

命令行参数 (格式:–key=value) (其他参数的配置一模一样,只是key不同而已)

--server.port=10010

这样我们就可以通过在启动的时候的命令指定:

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

运行jar程序:

同时设置Java系统属性和命令行参数

一问详解SpringBoot配置文件优先级

仅设置Java系统属性

一问详解SpringBoot配置文件优先级

注意事项:

Springboot项目进行打包时,需要引入插件 spring-boot-maven-plugin (基于官网骨架创建项目,会自动添加该插件)

在SpringBoot项目当中,常见的属性配置方式有5种, 3种配置文件,加上2种外部属性的配置(Java系统属性、命令行参数)。通过以上的测试,我们也得出了优先级(从低到高):

  • application.yaml(忽略)

  • application.yml

  • application.properties

  • java系统属性(-Dxxx=xxx)

  • 命令行参数(–xxx=xxx)

来源:https://blog.csdn.net/qq_47910339/article/details/129964795

标签:SpringBoot,配置文件,优先级
0
投稿

猜你喜欢

  • C#创建、读取和修改Excel的方法

    2023-02-24 06:28:16
  • idea热部署插件jrebel正式版及破解版安装详细图文教程

    2023-05-27 03:28:59
  • Java获取中文拼音、中文首字母缩写和中文首字母的示例

    2021-07-18 14:28:16
  • 深入解析Java接口(interface)的使用

    2022-05-07 07:50:51
  • Java全面分析面向对象之继承

    2023-11-23 11:55:59
  • Java日常练习题,每天进步一点点(7)

    2023-11-27 00:34:58
  • C#SuperSocket的搭建并配置启动总结

    2022-01-25 15:16:24
  • Java实现经典游戏复杂迷宫

    2021-05-29 22:33:34
  • Java 获取网站图片的示例代码

    2022-03-11 14:52:44
  • springboot读取application.yaml文件数据的方法

    2023-09-06 05:29:24
  • 详解java 客户端链接不上redis解决方案

    2023-11-12 10:12:15
  • 基于Springboot一个注解搞定数据字典的实践方案

    2022-12-23 01:12:38
  • Lucene 索引删除策略源码解析

    2023-11-21 00:11:01
  • android 使用Xml文件定义Shape方式

    2022-09-08 19:19:38
  • Java Mybatis框架增删查改与核心配置详解流程与用法

    2022-07-08 10:47:20
  • 详解java中各类锁的机制

    2022-08-01 06:48:56
  • 比Math类库abs()方法性能更高的取绝对值方法介绍

    2023-10-14 07:51:36
  • java抛出异常的几种情况小结

    2022-01-11 05:46:40
  • Java数据结构中堆的向下和向上调整解析

    2022-01-02 07:34:58
  • 深入讲解基于JDK的动态代理机制

    2022-07-19 07:13:32
  • asp之家 软件编程 m.aspxhome.com