spring boot 基础(1)yml文件多环境配置、${}的作用及其使用、获取系统环境变量

文章目录

  • 原文链接
  • 1. 多环境的配置
    • 方式1:多个yml文件
    • 方式2:单个yml文件
  • 2. ${}的作用及其使用
  • 3. 获取系统环境变量

原文链接

https://blog.csdn.net/ster_ben/article/details/119295815

https://blog.csdn.net/tianyaleixiaowu/article/details/76019814

1. 多环境的配置

方式1:多个yml文件

  1. 创建多个配置文件,如下
application.yml      #主配置文件
application-dev.yml  #开发环境的配置
application-prod.yml #生产环境的配置
application-test.yml #测试环境的配置
  1. 在application.yml中指定配置

application.yml中选择需要使用的配置文件(当选择的文件和application.yml文件存在相同的配置时,application.yml中的配置会被覆盖掉

spring:
 profiles:
   active: dev #需要使用的配置文件的后缀

方式2:单个yml文件

#激活dev环境配置
spring:
  profiles.active: dev
 
 
# 开发环境配置
spring:
  profiles: dev
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/dev?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
server:
  port: 8080
 
 
# 测试环境配置
spring:
  profiles: test
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    password: test
    driver-class-name: com.mysql.jdbc.Driver
server:
  port: 8081
 
 
 
# 生产环境配置
spring:
  profiles: prod
  datasource:
    url: jdbc:mysql://localhost:3306/prod?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    password: prod
    driver-class-name: com.mysql.jdbc.Driver
 server:
  port: 8082

配置默认的profile为dev,其他环境可以通过指定启动参数来使用不同的profile,比如:

  • 测试环境:java -jar 项目.jar --spring.profiles.active=test
  • 生产环境:java -jar 项目.jar --spring.profiles.active=prod

2. ${}的作用及其使用

平常的写法:

  redis:
    #数据库索引
    database: 0
    host: 127.0.0.1
    port: 6379
    password: 123456
    #连接超时时间
    timeout: 6000

使用${}的写法:

  redis:
    #数据库索引
    database: ${REDIS_DB:0}
    host: ${REDIS_HOST:127.0.0.1}
    port: ${REDIS_PORT:6379}
    password: ${REDIS_PWD:}
    #连接超时时间
    timeout: 6000


写法意义:

该种写法形式是通过key来获取value (key:value),如果获取不到就使用后面默认值。${REDIS_DB:0}表示先从配置文件yml中或者启动命令中读取REDIS_DB即redis地址的值,如未能读取到,就使用后面的默认值0。


使用场景:

在一些直接通过Jar包启动的场景中,可以在启动时手动配置相关参数,如果没有配置,也会自动获取默认值进行启动,如

java -jar -DREDIS_HOST=172.16.0.36 -DREDIS_DB=2 xxx.jar

当然,${}这种形式本来也可以用来获取值,比如在本yml文件中去获取其他位置定义好的值,也可以去获取相关的环境变量。

3. 获取系统环境变量

你可能感兴趣的:(SpringBoot,spring,boot,java,spring)