SpringBoot:Profile多环境支持

本文介绍了SpringBoot中Profile的概念,用于根据不同环境提供差异化配置。内容包括:1) yml文件的多环境配置,如application-dev.yml和application-prod.yml;2) 激活Profile的三种方式,如主配置文件指定、命令行参数和虚拟机参数;3) 配置文件的加载位置,SpringBoot启动时会按顺序加载多个位置的配置,并以高优先级覆盖低优先级。注意在IDEA中配置文件路径的问题及其解决方案。

Profifile介绍

  • Profile是Spring用来针对不同环境要求,提供不同的配置支持,全局Profile配置使用的文件名称可以是,application-{profile}.properties / application-{profile}.yml;例如application-dev.properties/application-prod.yml

因为我觉得yml文件看的比较清楚所,下面示例将使用yml文件演示。

yml文件多环境配置

多种方式激活指定的Profile

1.在主配置文件种指定

spring:
  profiles:
    active: prod #激活哪个profile , 当前激活的是 prod就是生成环境
server:
  port: 8080

2.命令行参数指定

可以在测试的时候,配置传入命令行参数 --spring.profiles.active=dev

 

打jar包运行

java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

3.虚拟机参数指定

配置文件加载位置

  • SpringBoot启动时,会扫描以下位置application.properties或者application.yml文件作为Spring Boot的默认配置文件:

上面表格顺序向下从高到底,将所有位置的配置文件全部加载,高优先级的配置内容会覆盖低优先级的配置内容。

注意:如果使用IDEA创建的项目Module(如果是Project则忽略),当前项目的的根目录不是你所在的你这个项目的所有目录。这样使用file:存放配置文件时会找不到配置。

通过

System.getProperty("user.dir");//获取根目录

解决方式:更改工作路径直接为Module所有目录$MODULE_DIR$

配置文件属性参照:

https://docs.spring.io/spring-boot/docs/2.0.6.RELEASE/reference/htmlsingle/#common-application-properties

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值