详解SpringBoot配置文件启动时动态配置参数方法

序言

当我们要同时启用多个项目而又要使用不同端口或者变换配置属性时,我们可以在配置文件中设置${变量名}的变量来获取启动时传入的参数,从而实现了动态配置参数,使启用项目更加灵活

例子

server:
 port: ${PORT:50101} #服务端口
spring:
 application:
  name: xc‐govern‐center #指定服务名
eureka:
 client:
  registerWithEureka: true #服务注册,是否将自己注册到Eureka服务中
  fetchRegistry: true #服务发现,是否从Eureka中获取注册信息
  serviceUrl: #Eureka客户端与Eureka服务端的交互地址,高可用状态配置对方的地址,单机状态配置自己(如果不配置则默认本机8761端口)
   defaultZone: ${EUREKA_SERVER:http://eureka02:50102/eureka/} #向该地址上报心跳信息等
 server:
  enable‐self‐preservation: false #是否开启自我保护模式
  eviction‐interval‐timer‐in‐ms: 60000 #服务注册表清理间隔(单位毫秒,默认是60*1000)
 instance:
hostname: ${EUREKA_DOMAIN:eureka01}

${PORT:50101}:PORT是变量,当启动时该变量为空则默认50101端口
语法意思是:从该yml配置文件中或者启动配置传入的参数中获取对应属性值

可以类比一下写@Value注解时的格式
@Value(" ${huang.name}")

我们springboot的配置文件格式已经完成了,那么如何启动呢?

idea 点击 run -> edit configuration

详解SpringBoot配置文件启动时动态配置参数方法

设置配置文件参数步骤
1、首先按“+"号添加一个Application(SpringBoot项目添加SpringBoot也可以)
2、设置文件名称(随便起一个就行)
3、主要我画的三个红圈地方
1)、第一个是启动类的类路径
2)、设置要传入配置文件中的变量值

比如我要传入PORT这个变量的值:

server:
 port: ${PORT:50101} #服务端口

我们就这样写:
-DPORT=50101(-D可以理解为多个参数之间的分隔符)
多个参数就这样写:
-DPORT=50101 -DEUREKA_SERVER=http://eureka02:50102/eureka/ -DEUREKA_DOMAIN=eureka01

3)、项目名

完成,启动

详解SpringBoot配置文件启动时动态配置参数方法

在这里选择刚刚搞好的设置的名字,然后点击运行就会按照该设置中的参数来运行该项目了