Spring boot 的profile,通过profile指定开发、测试、生产环境

当项目上线时,可以指定上测试环境或生产环境,我们可以通过profile来做到这一点

profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、指定参数等方式快速切换环境。

1、多profile文件形式

     格式 :application-{profile}.yml  例如:  application-test.yml   application-prod.yml

2、多profile文档块模式

3、激活方式

     命令行 --spring.profiles.active=dev 

     配置文件   spring.profiles.active=dev 

     jvm参数 -D spring.profiles.active=dev

第一种方式,多profile文件的方式

比如我创建两个配置文件 一个是dev 一个是 test

dev设置端口

server:
  port: 18889

test设置端口

server:
  port: 18888

然后在启动项目的时候 我们制定使用哪个环境的配置文件

application.yml主配置文件中这么写

# profiles.active指定激活哪个环境的配置文件
spring:
  profiles:
    active: dev

这样我们在启动项目后 端口就会用dev配置文件中的端口了

如果我们用的yml文件作为配置文件的话有一种简单的写法,叫文档块 ---

server:
  port: 8080
spring:
  profiles:
    active: test
---
server:
  port: 8081
spring:
  profiles: test
---
server:
  port: 8082
spring:
  profiles: prod

第二种方式:文档块

在我们主配置文件中 写三个文档块,就不用写三个配置文件了。然后指定active 使用哪个文档块的配置。

当我们光标放到某个文档块时 idea还会提示再哪个文档块中。

第三种:命令行方式

在运行项目的时候,设置启动参数 --spring.profiles.active=test 这种方式,在idea中 点击主入口类 

 

在arguments中加入--spring.profiles.active=test参数。

当我们在启动项目的时候就会指定加载哪个环境的配置文件了

比如我们打完包了,交给运维上线启动服务的时候,可以指定参数。

java -jar *******.jar --spring.profiles.active=test

这样我们只需要将配置文件写好,至于上哪个环境我们就不用管了。

这种是配置文件我们来维护了,还有一种,配置文件我们都不用管,就是第四种

第四种:指定配置文件的路径来加载配置文件

这里我们需要了解一下spring boot加载配置文件的位置。

springboot 启动会扫描以下位置的application.properties或.yml文件

file: ./config/   当前项目文件下的config

file: ./  当前项目文件下

classpath:/config/  当前项目 类目录的config

classpath:/ 当前项目 类目录的跟目录

以上是按照优先级从高到低的顺序加载的,高优先级会覆盖低优先级的配置。如果四个位置都有配置文件,spring-boot都会加载,会形成一种互补配置

我们也可以通过指定 spring.config.location 来改变默认配置。

spring.config.location

注意 这个配置不是写在yml 配置文件中的,即便是写了也不会生效。

比如 我们已经将项目打包了,我们运维可以通过命令行启动项目的时候,来指定配置文件的新位置,指定配置文件和默认加载的这些配置文件共同形成互补配置

java -jar *******.jar --spring.config.location=D:/server/application.yml

这个非常适用项目已经发布了,需要修改配置 这种场景。我们就不用开发来在改配置 重新打包 重新发布了,只要运维改改配置直接重启服务加载新配置就行了。

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值