【黑马程序员2022新版SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术】
【一个场景】

开发完毕后需要测试人员进行测试,由于测试环境和开发环境的很多配置都不相同,所以测试人员在运行我们的工程时需要临时修改很多配置
java –jar springboot.jar –-spring.profiles.active=test --server.port=85 --server.servlet.context-path=/heima --server.tomcat.connection-timeout=-1 …… …… …… …… ……
针对这种情况, SpringBoot 定义了配置文件不同的放置的位置;而放在不同位置的优先级是不同的。
SpringBoot 中4级配置文件放置位置:
说明:级别越高优先级越高
创建一个名为 springboot_06_config_file 的 SpringBoot 工程模块

同样只勾web

创建一个控制器
package com.dingjiaxiong.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* ClassName: BookController
* date: 2022/9/21 19:08
*
* @author DingJiaxiong
*/
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println("id ===> " + id);
return "Hello,SpringBoot.";
}
}

OK。
在 resources 下创建一个名为 config 的目录,在该目录中创建 application.yml 配置文件,而在该配置文件中将端口号设置为 81

在 resources 下创建的 application.yml 配置文件中并将端口号设置为 80

【验证1级和2级的优先级】
启动服务器,查看端口号

得出类路径下的 config 下的配置文件优先于类路径下的配置文件。
【验证2级和4级的优先级】
将工程打成 jar 包

在硬盘上找到 jar 包所在位置

在 jar 包所在位置创建 config 文件夹,在该文件夹下创建 application.yml 配置文件,而在该配合文件中将端口号设置为 82

在命令行使用命令运行程序

可以看出,file: config 下的配置文件优先于类路径下的配置文件。
注意:
SpringBoot 2.5.0版本存在一个bug,我们在使用这个版本时,需要在 jar 所在位置的 config 目录下创建一个任意名称的文件夹【笑死】