在SpringBoot中可以通过配置文件来对数据库和端口来进行配置,但是在不同的开发环境下所需要不同的配置。那么就如果每次都要重写配置文件就过于的繁琐,所以我们可以通过SpringBoot提供的Profiles来隔离应用程序配置的各个部分,并在特定的环境下,指定部分配置生效。
一:单个配置文件下
一:如何分隔不同环境的配置
在配置文件中可以通过“---”三个分隔符来分割不同环境的配置
二:如何判别那些配置属于哪个环境
给不同环境下的配置指定不同的名称
例如
spring: config: activate: on-profile: test
三:如何指定哪个环境的配置生效
可以通过在配置文件中指定生效的配置
例如:
spring:
profiles:
active:test
该配置是指定test名称的配置文件生效。
四:当配置文件中的配置与指定生效的配置中的内容冲突时哪个会生效?
例如
spring:
profiles:
active:test
serve:
port:8081
---
spring:
config:
activity;
on-profile: test
serve:
port:8080
默认配置文件与指定生效的配置中都配置了端口,在最终运行时指定运行的配置的优先级是大于默认配置文件中的优先级的,所以程序会在8080端口运行。
二:多个配置文件
还可以通过创建多个配置文件的方式,来对不同开发环境的配置文件进行分隔。
创建文件的格式名为:application-xx.yml,例如:application-dev.yml,在指定生效的配置文件时和单文件方式类似,在配置文件中通过配置
spring:
profiles:
active:dev
来指定生效的配置文件
Profiles-分组:
虽然我们将配置文件在不同环境下的配置进行了分隔,但是所有的配置都在一个配置文件中会使配置文件不便于管理和查看,所以我们可以通过对不同功能的配置来进行分类并创建多个对应的配置文件。例如我们可以将application-dev.yml配置文件分为application-devServe.yml和application-decDb.yml。但是我们如何将这些配置文件同时生效呢?
可以通过分组功能来实现:
spring:
frofiles:
grop:
"dev":devServe,devDb
active:dev