转自:http://www.cnblogs.com/winner-0715/p/6754994.html?utm_source=itdadao&utm_medium=referral
前言:
在我们的实际开发中,一般都有三套环境,开发环境,测试环境,生产环境,三套环境的数据库连接配置也有所不同,比如,端口,IP地址等等。如果在打包时候都频繁的修改配置文件信息,那必将是非常容易出错的地方。在springBoot多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,例如:(1)application-dev.properties 对应开发环境 (2)application-test.properties 对应测试环境(3)application-pro.properties 对应生产环境。对于哪个配置会生效,需要在application.properties中通过spring.profiles.active属性来设置,其值对应{profile}值,例如:pring.profiles.active=dev 就会加载开发环境配置的信息。
一. 多环境配置的好处:
1.不同环境配置可以配置不同的参数~
2.便于部署,提高效率,减少出错~
二. properties多环境配置
1. 配置激活选项
spring.profiles.active=dev
2.添加其他配置文件
application.properties:
#激活哪一个环境的配置文件
spring.profiles.active=dev
#公共配置
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss:
运行的时候还可以制定激活的环境
java -jar myapp.jar --spring.profiles.active=prd
三.YAML多环境配置
1.配置激活选项
spring:
profiles:
active: dev
2.在配置文件添加三个英文状态下的短横线即可区分
---
spring:
profiles: dev
application.yml
#激活哪一个环境的配置文件
spring:
profiles:
active: prd
#公共配置
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
---
spring:
profiles: dev
server:
port: 8081
---
spring:
profiles: test
server:
port: 8082
---
spring:
profiles: prd
server:
port: 8083
这种情况是报错的:Duplicate key: spring
正确的配置:
#激活哪一个环境的配置文件
#公共配置
spring:
profiles:
active: prd
jackson:
date-format: yyyy-MM-dd HH:mm:ss
---
spring:
profiles: dev
server:
port: 8081
---
spring:
profiles: test
server:
port: 8082
---
spring:
profiles: prd
server:
port: 8083
四.两种配置方式的比较
1. Properties配置多环境,需要添加多个配置文件,YAML只需要一个配件文件
yml文件本身具有区分不同环境的能力
2.书写格式的差异,yaml相对比较简洁,优雅
3. YAML的缺点:不能通过@PropertySource注解加载。如果需要使用@PropertySource注解的方式加载值,那就要使用properties文件。
讲真,还是喜欢properties的配置形式,yml形式的优雅?没啥感觉~哈哈~