• springboot系列(三):多环境切换,实例演示|超级详细,建议收藏


    👨‍🎓作者:bug菌

    ✏️博客:CSDN掘金

    💌公众号:猿圈奇妙屋

    🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

    🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

             嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

           小伙伴们在批阅文章的过程中如果觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章 点亮👍吧,您的点赞三连( 收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

    一、前言🔥

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

            所以问题来了,每次发布测试环境或者上生产,配置环境怎么配置?对吧?不要急,springboot都帮我们做了,我们只需要会使用profile就好! 

            早在Spring3.1版本时,profile就已经出来了。profile 是什么?它就是可以让 Spring 对不同的环境提供不同配置的功能,可以通过激活、指定参数等方式快速切换环境。

            简言之:就是我们需要在不同的场景下使用不同的配置,profile就是为解决我们多环境下切换配置复杂的问题而诞生的。

    二、如何使用profile?🔥

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

    application-{profile}.properties/yaml

            其中,{profile} 一般为各个环境的名称或简称,例如 dev、test 和 pro 等等。如下我们就直接使用yaml配置文件格式来做演示:

    yaml 配置:

    在 demo项目下 的 config文件夹 下添加 如下4 个配置文件:

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

            在 application.yaml 文件中,指定默认服务器端口号为 8080,并通过以下配置激活开发环境(dev)的 profile。

            未指定环境时,启动项目,你们可以看到控制台打印如下:

     具体看如下这句!

    No active profile set, falling back to default profiles: default

    看我圈起来的内容,很明显是有口子可以进行配置的。那应该得如何使用呢?别着急,往下看。

            我们来做个试验吧,我们在核心配置文件application.yaml中设置属性。指定为:spring.profiles.active=dev,再启动程序,发现application-dev.yaml 配置被激活了,启动端口号也修改为子配置文件设置的端口号。

    看控制台打印,测试可知:

     很明显可以看到dev环境已经启动了。

            有小伙伴可能会不相信,该不会是巧合吧,那我再给大家做个试验,这次在test环境中配置端口为8090,再请大家看结果会是怎样?

    application-test.yaml 内容设置如下:

    server: port: 8090

    application.yaml 内容设置如下:

    1. spring:
    2. profiles:
    3. active: test

            最终它到底能否启动项目成功并且运行8090端口呢?还是运行未指定环境的8080端口呢?接着往下看;

             ok!大家请看,确实是运行的tests环境配置。如此,便证实在两次application.yaml测试中使用profileh成功动态切换配置。

            上述介绍的主要是配置方式动态切换,而切换方式就是通过配置文件的spring.profiles.active属性实现,那还有没有别的启动方式呢?别着急,肯定有,看下边,bug菌都给大家总结好了,可得好好学哈~

    如下两种激活配置文件的方式:

    1. profile激动方式配置文件:
    2. 在配置文件中配置:spring.profiles.active = dev(如上已经做了演示)
    3. 虚拟机参数配置:在VM options指定:-Dspring.profiles.active = dev
    4. 命令行参数配置:java -jar xxx.jar --spring.profiles.active = dev

            然后就是.properties文件配置方式也跟.yaml是一样的,此处就不一一赘述啦。各位小伙伴大可自行尝试,产生任何疑惑的地方都可下方直接留言哦~bug菌一定不留余力的帮助大家。赠人玫瑰,手有余香。

            接下来 我就为大家介绍及使用剩下的两种激活配置的方式

    三、虚拟机参数方式配置🔥

            在idea开发工具中打开RunDebug Configurations界面;然后在VM options一行中指定;

    -Dspring.profiles.active=dev

            说明:指定是dev环境;dev换成别的环境也可。就=后边改成别的环境即可。

    application-dev.yaml

    server:  port: 8100

     项目启动一切正常。说明VM参数配置动态切换环境可行。

    四、命令行参数配置🔥

            先是将我们的demo项目打成一个jar包

    先教下大家怎么使用idea打jar包吧,其实很简单,看如下步骤瞬间就可以学会。

    [INFO] BUILD SUCCESS

    打印出了 success ,说明jar打包成功;

            接着我们找到jar的位置;看如下图:是存到了target根目录下

     然后选中该jar文件,右键单击打开面板选择Show in Explorer 即可跳转到该文件位置上,

    如下已经是找到了该文件存放位置,接着直接在目录上输入cmd回车,即可打开小黑框。

     在小黑框里执行如下命令,看看能否运行成功呢?咱们拭目以待;

    java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

            说明:--spring.profiles.active=test 为激活测试环境(test)Profile 的命令行参数。

    运行结果如下:

            ok,完美,成功运行!证明命令行参数配置也可动态切换环境。至于大家如何选择,这就看你的实际需求啦!

           ... ...

           ok,以上就是我这期的全部内容啦,如果还想学习更多,你可以看看我的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬的。好啦,咱们下期见~

    五、文末🔥

            如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《springboot零基础入门教学》,从无到有,从零到一!希望能帮助到更多小伙伴们。

           我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

            最后送大家两句我很喜欢的话,与诸君共勉!


    ☘️做你想做的人,没有时间限制,只要愿意,什么时候都可以start。

    🍀你能从现在开始改变,也可以一成不变,这件事,没有规矩可言,你可以活出最精彩的自己。


    ​​​

    💌如果文章对您有所帮助,就请留下您的吧!(#^.^#);

    💝如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;

    💗如果对文章有任何疑问,还请文末留言或者加群吧【QQ交流群:708072830】;

    💞鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);

    💕版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。

  • 相关阅读:
    Springboot 开发 Web Flux
    华为OD机试真题 Java 实现【比赛的冠亚季军】【2023 B卷 100分】,附详细解题思路
    kangle一键安装脚本
    你真的精通HTML吗?——那些“看不见”的HTML标签及其使用场景
    yolov5剪枝实战5:模型剪枝和fine-tune
    C专家编程 第1章 C:穿越时空的迷雾 1.1 C语言的史前阶段
    5-13sqli暴力破解在sqli漏洞中的应用
    七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
    33. 搜索旋转排序数组
    Harbor 简介
  • 原文地址:https://blog.csdn.net/weixin_43970743/article/details/125721763