文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

profiles.active多环境开发、测试、部署过程是什么

2023-07-05 10:28

关注

这篇文章主要介绍“profiles.active多环境开发、测试、部署过程是什么”,在日常操作中,相信很多人在profiles.active多环境开发、测试、部署过程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”profiles.active多环境开发、测试、部署过程是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、使用场景

在开始讲profiles.active配置时,我们先来考虑几个场景。

我们在开发过程中,经常会碰到多个环境,特别熟数据库,经常是有开发库,测试库,和生产库。一般我们都是连的开发库进行开发,但是有时候也会需要连接测试库,甚至是生产库进行调试工作。我们通常的做法,可能就是直接修改配置文件的数据库连接,需要连哪个库就改成哪个库的连接。可是有些时候我们改来改去经常出错,或者不记得哪个环境的配置了,这时我们可能会想到一次把几个环境的配置都写进来,把不需要的注释掉,这确实是一种可行的办法,但还有没有更好的办法呢?

再说部署时候的场景。一般我们打包里面包含的都是开发库的配置文件,经常部署的时候,需要手动修改部署包里面的配置文件,如果部署到测试环境,就修改成测试环境的数据库,如果是生产环境,就修改成生产环境的数据库。那么有没有办法让一个部署包能同时适配各种不同的环境呢。

接下来我们要讲的profiles.active就可以解决上面的需求。

2、profiles.active

profiles.active表示当前激活的环境参数,他可以是一个字符数组,但一般情况下,我们都是使用单个字符,例如dev,test,prod来标识。这里我们还是以数据库配置为例,假设我们原来的application.yml里面配置的数据源是本地数据源,现在我们再来配置一个开发库,以dev作为环境标识。

我们将application.yml复制一份,命名为application-dev.yml,application-{profile-name}.yml,命名规则就是这样的。然后我们把dev里面的数据库名改成spring_boot_study_dev,其他不用的配置删掉。

profiles.active多环境开发、测试、部署过程是什么

这就完成了我们开发环境的配置文件编写。

接着,我们再来一份测试环境的配置。

profiles.active多环境开发、测试、部署过程是什么

这里,我们已经完成了多个环境配置文件的编写。可以看到,不同环境的配置我们写在不同的配置文件里面,相同的配置我们使用application.yml里面的配置,可以认为是默认配置。我们还差最后一步,使用profiles.active来激活我们当前的需要使用的环境。

3、profiles.actvie使用

profiles.active配置的方式也有几种,我们从最简单的开始。我们可以在application.yml里面直接配置spring.profiles.active属性。

profiles.active多环境开发、测试、部署过程是什么

这样我们就指定了当前的环境变量,现在我们来启动程序。

profiles.active多环境开发、测试、部署过程是什么

我们可以看到日志里面打印了当前profiles active 是dev,说明我们的配置生效了,其实我们后面还可以看到程序并没有启动完成,因为我们并没有创建spring_boot_study_dev这个数据库,这正好再一次证明我们的配置已经生效。

profiles.active多环境开发、测试、部署过程是什么

其实在我们以前没有配置profiles.active时,默认激活的是default。

现在我们可以通过修改spring.profiles.active属性来快速的切换环境了。这里笔者要再次提醒一下大家,当我们配置成dev的时候,我们的程序是会读取application-dev.yml和application.yml两个配置文件,spring会将两个配置文件里面的配置进行一个合并,如果两个文件里面有相同的配置项,将会以application-dev.yml里面的优先级为高,即dev里面的配置将会覆盖默认的配置。

除了改配置文件,我们还可以在eclipse指定环境变量

profiles.active多环境开发、测试、部署过程是什么

通过配置环境变量,同样能生效,并且,如果在环境变量和配置文件同时配置了的情况下,环境变量的优先级会高于配置文件。

这两种修改spring.profiles.active的方式是开发时常用的,但是他并不能解决我们部署时候的问题。

假设我们是使用jar包运行,我们可以在执行java -jar命令的时候增加-Dspring.profiles.active=test参数的方式指定环境。

profiles.active多环境开发、测试、部署过程是什么

这种配置方式,跟我们修改eclipse环境变量的原理是一样的。这样只要我们部署包里面包含了各个环境的配置,我们就可以一个部署包直接在多个环境使用,只需在启动的时候指定环境名即可。

那如果是Tomcat部署的war包怎么处理呢。这里以linux版本为例,找到catalina.sh文件,修改JAVA_OPTS参数,增加我们需要配置的环境变量,这样只要这个Tomcat里面部署的应用,spring.profiles.active值都是同一个值。

profiles.active多环境开发、测试、部署过程是什么

到此,关于“profiles.active多环境开发、测试、部署过程是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯