欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot yml中profiles的巧妙用法(小白必看多环境配置)

程序员文章站 2022-03-16 10:05:32
遥想当年我还是个小白的时候,就只是写写demo,也就在一套环境上跑跑,真正当实战的时候,除了你本地环境,还有开发环境,测试环境,生产环境(上线)等等。如果你不知道用这个profiles,那么这么多套环...

遥想当年我还是个小白的时候,就只是写写demo,也就在一套环境上跑跑,真正当实战的时候,除了你本地环境,还有开发环境,测试环境,生产环境(上线)等等。

如果你不知道用这个profiles,那么这么多套环境,用一种老古董的写法就是这样,用哪个环境就把其他环境注释掉!

spring:
  datasource:
    username: root          							#dev
    password: 123456									#dev
    #username: root2									#test
    #password: 456789									#test
    ...

这还只2个环境的数据库账号密码而已,真正的配置比这要多了去了!

这个时候profiles的妙用就体现出来了!用active指定当前使用的环境

spring:
  profiles:
    active: local

在下面用 — 来隔开环境,用profiles来指定这个配置环境名称。

spring:
  profiles: local
  datasource:
    username: root          						
    password: 123456
---
spring:
  profiles: dev						
    username: root2									
    password: 456789
---  								
    ...

当然这样环境多了,整个yml也是很乱,所以这个时候我们是可以把这些环境捞出来,放在一个单独的yml中,以 application-{profile}.yml 的格式。

这个{profile}就是你的环境名!如下

springboot yml中profiles的巧妙用法(小白必看多环境配置)

一个application.yml 放基本的配置,和使用哪个环境。

然后下面这些各式各样的yml就可以用来存各个环境的数据库配置,服务注册等。

springboot yml中profiles的巧妙用法(小白必看多环境配置)

而且会优先使用配置的环境中的,比如我在local环境中配置了一个端口号,输出的就是local环境中的端口号。

springboot yml中profiles的巧妙用法(小白必看多环境配置)

当我去掉local中配置的端口号,就会用默认配置的端口号

springboot yml中profiles的巧妙用法(小白必看多环境配置)

springboot failed to load applicationcontext

如果遇到这个错,可能是配置不对,例如我是把数据库配置单独丢进去local了,当我使用dev环境时,里面没有数据库配置,最后的application.yml中也报错了,程序中有数据库交互的接口,所有就报异常了!

要么在dev中补充,要么在application.yml中补充,我个人建议在dev补充。

因为这样才能保证各个环境不会有出现问题,application.yml只配通用的东西!

其他妙用(用时补充) 配置logback中也可以用到 配置swagger也可以用到

到此这篇关于springboot yml中profiles的妙用小白必看多环境配置的文章就介绍到这了,更多相关springboot yml使用profiles内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!