目录
一 主配置文件和辅配置文件
二 具体使用
1. 通过直接修改 application.yml 中的属性值
2. 通过 maven 进行配置修改
当我们需要部署项目的时候, 肯定会遇到不同的部署环境下, 需要有不同的配置. 例如开发环境下和生产环境下的配置肯定就不会是完全相同的, 如数据库的账号密码等. 这时候就需要使用到多平台文件配置, 来为不同的平台环境下设置不同的配置.
一 主配置文件和辅配置文件
我们需要为不同的环境创建属于各自的配置文件:
例如上图中, 额外创建了两个配置文件, 分别代表了两个环境下的配置:
application-dev.yml, 代表开发环境下的配置文件;
application-prod.yml, 代表生产环境下的配置文件.
除了这两个文件, 原先的 application.yml 也需要进行保留.
application.yml 就称为主配置文件, 而我们另外增加的两个文件就称为是辅配置文件.
注意: 辅配置文件的命名格式需要按照上图进行命名, 也即是: application-{name}.yml
在主配置文件中, 我们可以设置不同环境下相同的配置属性, 在辅配置文件中设置不同环境下不同的配置属性.
二 具体使用
1. 通过直接修改 application.yml 中的属性值
实际的 SpringBoot 项目运行时, 只会将原始的 application.yml 文件识别为程序的配置文件, 而不能识别我们额外创建的其他配置文件, 因此我们就需要在 application.yml 文件中引入我们额外增加的辅配置文件来作用到程序中.
我们只需在下图中的 spring.profiles.active 属性中填入对应的配置文件的值就可以:
可以看出我们需要填入的值就是我们创建辅配置文件中命名时的 {name} 一栏的值, 这也是我们在命名时需要按照上述提到的命名格式来规范命名的原因.
配置好之后, 程序启动时就会找到该值对应的配置文件中的配置项一一进行配置了.
2. 通过 maven 进行配置修改
上述方式虽然已经很方便了, 但是进行不同环境部署之前, 每次打包的时候, 都要对 application.yml 中的值进行修改, 这就难免会偶尔几次忘了的情况, 毕竟要靠人, 但是人又是最不可靠的. 因此还可以通过 maven 支持的方式来避免这种情况的发生.
我们可以在 pom.xml 中设置多平台配置文件对应的 name 的值:
<profiles>: 设置多个平台的配置信息,运行之后选择使用哪个平台即可
<profile>: 设置了一个平台配置,其中包含的是该平台配置的相关信息
<id>: 相当于该平台的名称
<properties>: 该平台配置信息的一些属性,其中的每个属性(也即是标签)都是程序猿自定义的
例如此处, 我就将配置文件的 {name} 值定义为了一个名为 profile.name 的属性
写完之后, 手动刷新以下 maven, 就会发现右侧 maven 选项处多了下图的可选项, 选项对应的名称就是我们在 pom.xml 中设置的 id 名称:
此时就说明我们已经配置成功了.
然后, 在 application.yml 中, 我们无需在 spring.profile.active 一栏填入具体的值了, 而只需使用上述定义好了的属性名即可, 使用方式是: 将属性名使用前后@包括起来:
这样, 当项目进行打包之前, 我们无需再手动修改值, 只需在右侧 maven 选项处勾选我们需要的辅配置文件的选项即可:
按照我个人的理解就是: 相当于将我们本应该填入的值定义为了一个变量(变量名是程序猿自定义的), 然后在 application.yml 中使用该变量, 程序进行打包之前选择该变量的具体值即可.
注意: 在 pom.xml 进行设置了之后, 一定要手动刷新 maven , 否则就会出现以下报错(别问我怎么知道的):