# springboot的多环境配置

# 1、 使用springboot的profile命名规则

profile用于多环境的激活和配置用来切换生产测试本地等多套不通环境的配置。如果每次去更改配置就非常麻烦profile就是用来切换多环境配置的。
在Spring Boot框架中使用Profile配置文件进行多环境配置时该配置文件命名必须满足
比如常见的:

application.yml
application-dev.yml
application-uat.yml
application-prod.yml
1
2
3
4

# 2、application的继承

application-dev.yml会继承application.yml的属性

注意参数覆盖规则
appliacation.properties>appliacation.yml>application.yaml
相同配置参数优先级高的生效。
1
2
3

# 3、application.yml 的组合

很多不同功能的配置文件但是怎么通过组合启用相应的功能呐
image.png
看下application.yml

spring:
  profiles:
    active: dev
    include: event,dpe,spat,bsm,tracking
  application:
    name: ccp-mqtt
1
2
3
4
5
6

可以看到通过include的标签并且不需要写前缀application你学废了吗
命名规则你看懂了吗

# 4、项目启动时激活配置

# 1)通过配置文件激活

直接在application.yml中指定

spring:
  profiles:
    active: dev
1
2
3

# 2)通过vm参数激活

这个主要针对idea的开发使用如果你使用eclipse也是类似
image.png

# 3)通过命令行参数

这个和启动脚本是一样的原理
image.png

# 4)运行时指定参数

可以在启动脚本中激活

java -jar ccpParking.jar --spring.profiles.active=test
1

# 5)通过idea的参数设置

image.png

# 5、application启用环境参数

多个配置文件也很烦不能动态的配置环境变量比较方便一套配置根据环境切换

redis:
    #    host: 10.12.6.76
    #    port: 4888
    #    password: 6Qhq8BeRWE7WYOLqRjhwP233ujB1zSPR
    #    database: 9
    host: ${REDIS_HOST:172.26.1.152}
    port: ${REDIS_PORT:6379}
#    password: ${REDIS_INTERNAL_PASSWD:6Qhq8BeRWE7WYOLqRjhwP233ujB1zSPR}
    database: ${ECARDSERVER_REDIS_DBNO:6}
    lettuce:
      pool:
        max-active: 64
        max-idle: 16
        max-wait: 100ms
        min-idle: 8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

这里如果配置了环境变量则使用环境变量如果没配则使用默认值
port: ${REDIS_PORT:6379} 如果环境变量设置了REDIS_PORT 则使用否则默认6379
环境变量一般在容器启动脚本中配置

# 5、总结

多环境的配置主要是为了切换方便方案很多建议使用环境变量的方式这样不用搞那么多配置文件

# 相关资料

全量分析

评 论:

上次更新时间: 6/1/2023, 11:11:17 AM