温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2023-03-09 13:41:27 来源:亿速云 阅读:90 作者:iii 栏目:开发技术

这篇文章主要介绍“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多环境开发、测试、部署过程是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI