Spring Boot可以外部化程序配置,以便可以在不同环境中使用相同的应用程序代码;当然Spring Boot可以将配置文件进行拆分,以便于激活不同的运行环境。可以在单个文件中区分多环境,也可以将单个文件拆分成多配置文件。
SpringBoot默认从如下4个位置加载配置文件:classpath:/,classpath:/config/,file:./,file:./config/
SpringBoot默认加载application.yml,application.properties,application-default.yml,application-default.properties,这4种命名方式的配置文件。
我们可以使用spring.profiles.active配置激活指定自定义配置,若没有,就使用系统默认配置,可从console控制台查看,如下:
INFO 23520 --- [ main] .SpringBootConfigurationSplitApplication : No active profile set, falling back to default profiles: default在application-{default}的配置文件中,我们可以拆分成不同环境,操作如下:
使用spring.profiles.active标识需要激活的配置环境使用---分割不同的配置环境spring.profiles指定配置环境名称范例:
spring: profiles: active: profilesF user-defined: common-configuration: hi this common config!! --- server: port: 8000 spring: application: name: SplitF profiles: profilesF --- server: port: 8001 spring: application: name: SplitS profiles: profilesS 公有配置与spring.profiles.active同级spring.profiles.active用来激活,不同环境中配置的spring.profiles配置文件包括,application.yml,application-comm.yml,application-dev.yml,application-test.yml
在application-comm.yml中放置公有配置
user-defined: common-configuration: hi this common config!!在application-dev.yml和application-test.yml中分别定义一个开发环境和测试环境
user-defined: dev-configuration: hi this dev config!! server: port: 8888 user-defined: test-configuration: hi this dev config!! server: port: 6666在application.yml中引入,激活配置文件
spring: profiles: #include: comm,dev active: - comm - dev