springboot-profiles多环境配置整合避坑(保姆级⼊门)
第⼀步:从简单的说起
件开发中经常有开发环境、测试环境、预发布环境、⽣产环境,⽽且⼀般这些环境配置会各不相同,⽐如数据库、应⽤端⼝号等配置就不⼀样,每次打包发布⼿动改配置⿇烦且容易出错,如果能在不修改配置的基础上简单操作就能实现切换是不是很美,那么我就⼀个l配置⽂件,这么多份环境配置难道都写在这⾥,那我们试试看
image.png
原来l⽂件可以⽤ --- 来划分区块,⼀个区块代表⼀个环境,这样就把多环境配置内容集中写⼊到⼀个主配置⽂件中了,主配置⽂件l就是系统启动默认会使⽤的配置⽂件,那我们启动⼀下看看效果(注意:第⼀区块是主配置内容必须要有的,启⽤其它区块会将相同配置内容进⾏覆盖替换)
image.png
好的,当前使⽤的默认配置端⼝是8080,那么如何切换成8888呢,配置如下激活dev,再次运⾏
image.png
查看运⾏后端⼝为8888,这样我们就完成了简单的多环境切换,你也可以切换成9999,只需要将dev改成prod
image.png
⽬前我们多环境只对端⼝进⾏了区别,如果每个区块配置不同的数据库配置,⽐如第⼀区块配置成本地数据库那么他就会连本地数据库,那么prod当然就是配置⽣产的数据库了。如果本地、测试、⽣产所有配置都⼀样唯独数据库不⼀样,那么每个区块会有很多重复的配置,⽽且l⽂件被塞得满满当当,查看蛮头疼的,但是在这个前提上我如果本地开发时想连接prod的数据库,那么直接active:prod启⽤就可以了。
⾄此,看起来⽤idea开发时切换是没问题的,那么打包时是什么情况呢,那就认为idea运⾏的是哪个环境,打包时默认⽤的就是哪个环境,当前idea项⽬启动运⾏端⼝为8888,这⾥可以先停掉idea当前这个服务,因为打包后启动jar包会导致冲突,然后我们maven打包,先clean是将你当前的jar包删除清理,package为打包
image.png 到j项⽬ar包
image.png
image.png
image.png cmd回车进⼊控制台,执⾏命令 运⾏jar包
image.png
image.png
image.pngmaven打包本地jar包
image.png
发现项⽬启动端⼝为8082
image.png
说明⽤多个⽂件配置优先级要⾼于集中在l这种⽅式,⽽且这种⽅式优于集中配置便于区分管理环境,其它都和上述测试情况⼀致这⾥就不做对⽐测试了(原则就是被激活l的环境配置与l主配置中相同内容会被前者覆盖替换),⼀般这种⽅式⽤的⽐较多,l中的区块就可以删除掉了。
另外idea中还可以这样激活当前选⽤环境
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论