SpringBoot
官网已经进行了说明,参见 :
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config
进入上面网站后会看到如下页面

文章插图
如果使用了多种方式配合同一个配置项,优先级高的生效 。
二、配置文件分类有这样的场景,我们开发完毕后需要测试人员进行测试,由于测试环境和开发环境的很多配置都不相同,所以测试人员在运行我们的工程时需要临时修改很多配置,如下
java –jar springboot.jar –-spring.profiles.active=test --server.port=85 --server.servlet.context-path=/heima --server.tomcat.connection-timeout=-1 …… …… …… …… ……
针对这种情况,SpringBoot
定义了配置文件不同的放置的位置;而放在不同位置的优先级时不同的 。SpringBoot
中4级配置文件放置位置:- 1级:resources/application.yml
- 2级:resources/config/application.yml
- 3级:target/application.yml
- 4级:target/config/application.yml
说明:级别越高优先级越高2.1 代码演示2.1.1 环境准备创建一个名为
3级与4级留作系统打包后设置通用属性
1级与2级用于系统开发阶段设置通用属性
springboot_06_config_file
的 SpringBoot
工程,,参考Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析,目录结构如下
文章插图
在
resources
下创建一个名为 config
的目录,在该目录中创建 application.yml
配置文件,而在该配置文件中将端口号设置为 81
,内容如下server:port: 81
而在 resources
下创建的 application.yml
配置文件中并将端口号设置为 80
,内容如下server:port: 80
2.1.2 验证1级和2级的优先级运行启动引导类,可以在控制台看到如下日志信息
文章插图
通过这个结果可以得出类路径下的
config
下的配置文件优先于类路径下的配置文件 。2.1.3 验证2级和4级的优先级要验证4级,按照以下步骤完成
- 将工程打成
jar
包
点击工程的package
来打jar
包
文章插图
- 在硬盘上找到
jar
包所在位置
文章插图
- 在
jar
包所在位置创建config
文件夹,在该文件夹下创建application.yml
配置文件,而在该配合文件中将端口号设置为82
- 在命令行使用以下命令运行程序
java -jar springboot_06_config_file-0.0.1-SNAPSHOT.jar
运行后日志信息如下
文章插图
通过这个结果可以得出file:config
下的配置文件优先于类路径下的配置文件 。
注意:
SpringBoot 2.5.0版本存在一个bug,我们在使用这个版本时,需要在jar
所在位置的config
目录下创建一个任意名称的文件夹
经验总结扩展阅读
- 【Java8新特性】- Stream流
- 🔥支持 Java 19 的轻量级应用开发框架,Solon v1.10.4 发布
- Java核心技术阅读笔记 java中的自动拆装箱与缓存
- 驱动开发:内核取ntoskrnl模块基地址
- 【Java】 DirectByteBuffer堆外内存回收
- VScode开发STM32/GD32单片机-MakeFile工程JlinkRTT配置
- 一个C#开发者学习SpringCloud搭建微服务的心路历程
- 劳务报酬需要开发票吗
- Java19虚拟线程都来了,我正在写的线程代码会被淘汰掉吗?
- VScode开发STM32/GD32单片机-环境搭建