09Spring Boot的多环境配置

 一、配置文件样式

       在实际的项目开发中,一个项目通常会存在多个环境,例如,开发环境、测试环境和生产环境等。不同环境的配置也不尽相同,例如开发环境使用的是开发数据库,测试环境使用的是测试数据库,而生产环境使用的是线上的正式数据库。

       Profile 为在不同环境下使用不同的配置提供了支持,我们可以通过激活、指定参数等方式快速切换环境。

二、多 Profile 文件方式

       pring Boot 的配置文件共有两种形式:.properties  文件和 .yml 文件,不管哪种形式,它们都能通过文件名的命名形式区分出不同的环境的配置,文件命名格式为:

application-{profile}.properties/yml

其中,{profile} 一般为各个环境的名称或简称,例如 dev、test 和 prod 等等。

1案例:properties 配置

在 helloworld 的 src/main/resources 下添加 4 个配置文件:

  • application.properties:主配置文件
  • application-dev.properties:开发环境配置文件
  • application-test.properties:测试环境配置文件
  • application-prod.properties:生产环境配置文件

01配置application-dev.properties:开发环境配置文件

#开发环境
server.port= 8081 #表示监听的80端口,默认是8080
spring.datasource.driver-class-name=com.mysql.jdbc.Driver #数据库驱动
spring.datasource.url=jdbc:mysql://localhost:3306/ devDB?seUnicode=true
spring.datasource.username= rootdev
spring.datasource.password= rootdev

02配置application-test.properties:测试环境配置文件

#测试环境
server.port= 8082 #表示监听的80端口,默认是8080
spring.datasource.driver-class-name=com.mysql.jdbc.Driver #数据库驱动
spring.datasource.url=jdbc:mysql://localhost:3306/ testDB?seUnicode=true
spring.datasource.username= roottest
spring.datasource.password= roottest

03配置application-prod.properties:生产环境配置文件

#生产环境
server.port= 8083 #表示监听的80端口,默认是8080
spring.datasource.driver-class-name=com.mysql.jdbc.Driver #数据库驱动
spring.datasource.url=jdbc:mysql://localhost:3306/ prodDB?seUnicode=true
spring.datasource.username= rootprod
spring.datasource.password= root prod

04配置application.properties:主配置文件
        在 application.properties 主配置文件中,指定默认服务器端口号为 8080,并通过以下配置激活开发或测试或生产环境的 profile。其中spring.profiles.active指定的值如:dev、test、prod就是多个环境配置文件名application-dev.properties、application-test.properties、application-prod.properties 中红色部分。

#主配置文件,进行激活

#默认端口号,如果没有激活,则默认是8080,如果激活,则使用激活的文件端口

server.port=8080

#激活指定的profile

spring.profiles.active=prod

#激活指定的profile

#spring.profiles.active=test

#激活指定的profile

#spring.profiles.active=dev

2案例:yml配置

方式一(多配置文件,不推荐):

在 helloworld 的 src/main/resources 下添加 4 个配置文件:

  • application.yml:主配置文件
  • application-dev.yml:开发环境配置文件
  • application-test.yml:测试环境配置文件
  • application-prod.yml:生产环境配置文件

01配置application-dev.yml:开发环境配置文件

#开发环境
server:
  port: 8081

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.jdbc.Driver #数据库驱动
      url: dbc:mysql://localhost:3306/devDB?seUnicode=true
      username: rootdev
      password: rootdev

02配置application-test.yml:测试环境配置文件

#测试环境
server:
  port: 8082

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.jdbc.Driver #数据库驱动
      url: dbc:mysql://localhost:3306/testDB?seUnicode=true
      username: roottest
      password: roottest

03配置application-prod.yml:生产环境配置文件

#生产环境
server:
  port: 8083

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.jdbc.Driver #数据库驱动
      url: dbc:mysql://localhost:3306/prodDB?seUnicode=true
      username: rootprod
      password: rootprod

04配置application.yml:主配置文件
        在 application.yml主配置文件中,指定默认服务器端口号为 8080,并通过以下配置激活开发或测试或生产环境的 profile。其中spring.profiles.active指定的值如:dev、test、prod就是多个环境配置文件名application-dev.properties、application-test.properties、application-prod.properties 中红色部分。

#主配置文件,进行激活

#默认端口号,如果没有激活,则默认是8080,如果激活,则使用激活的文件端口

server.port=8080

#激活开发环境

spring:

   profiles:

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

#激活测试环境

#spring:

#   profiles:

#      active: test #需要使用的配置文件的后缀

#激活生产环境

#spring:

#   profiles:

#      active: prod#需要使用的配置文件的后缀

方式二(单配置文件,推荐):

在 helloworld 的 src/main/resources 下添加 1 个主配置文件:

  • application.properties:主配置文件

01配置application.yml:主配置文件

    在配置多个环境,使用 “---” 进行分隔

#激活dev环境配置

spring:

   profiles:

       active:  dev 

#       active:  test

#       active:  prod

---      #使用此进行分割
# 开发环境配置
spring:
  config:
    activate:
      on-profile: dev 
  datasource:
    url: jdbc:mysql://localhost:3306/devDB?useUnicode=true
    username: rootdev
    password: rootdev
    driver-class-name: com.mysql.jdbc.Driver
server:
  port: 8081

---

# 测试环境配置
spring:
  config: 
    activate: 
      on-profile: test 
  datasource:
    url: jdbc:mysql://localhost:3306/testDB?useUnicode=true
    username: roottest
    password: roottest
    driver-class-name: com.mysql.jdbc.Driver
server:
  port: 8082
---

# 生产环境配置
spring:
  config: 
    activate: 
      on-profile: prod
  datasource:
    url: jdbc:mysql://localhost:3306/prodDB?useUnicode=true
    username: rootprod
    password: rootprod
    driver-class-name: com.mysql.jdbc.Driver
  server:
    port: 8083

10SpringBoot 静态资源访问 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值