Spring Boot配置文件-多环境配置

一. 多环境配置的好处:

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形式的优雅?没啥感觉~哈哈~



实战:

分别创建 

application.properties(默认) application-dev.properties(开发环境) application-pro.properties(生产环境)

   

application.properties

#默认使用开发环境配置文件
spring.profiles.active=dev

application-dev.properties(开发环境)

#开发环境端口
server.port=8080
#开发环境数据库
...

application-pro.properties(生产环境)

#生产环境端口
server.port=80
#生产环境数据库
...

在服务器上创建脚本 start.sh

java -jar myapp.jar --spring.profiles.active=pro
这样做的好处就是,本地使用 application-dev.properties (开发环境)中的配置,线上使用application-pro.properties(生产环境)中的配置。将开发与线上配置区分开,在更新时也不容易出错。避免每次更新都要改一堆配置,想想都可怕~



版权声明:本文为yangjiechao945原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。