一、运维部署springboot项目时,注意事项
通常 我们的springboot
项目在部署时,都是是打成jar包后,放在linux环境上运行。
部署也分为在测试环境部署、在准生产环境部署等。
举个例子:假如现在是在 开发环境
中,,,那么idea中的配置文件应该是有多个,开发环境,我们当然使用的是 application-dev.propertie
这个配置文件。
在idea中运行项目时,需要在启动配置中设置,使用 dev
环境的配置启动即可。
然而,当开发完成后,需要运维进行项目部署时,为了方便运维使用,以及 可以随时的新增 或者修改覆盖原来配置文件的内容,我们 可以写这样一个脚本,,
java -jar boot.jar --spring.profiles,active=dev --spring.config.additional-location=applciationXX.properties(properties配置文件的位置)
其中:
--spring.profiles,active=dev
这个是用来指定 我们使用的是dev
环境下的配置信息,,--spring.config.additional-location=applciationXX.properties
是用来指定一些追加的配置信息,它的优先级是最高的,会覆盖低优先级的配置,,同时,不同的配置会进行互补。
如果使用了上面的命令,则配置文件的加载顺序是:
1、外部配置文件 --spring.config.additional-location=applciationXX.properties(properties配置文件的位置)
2、jar包中的指定环境配置--spring.profiles,active=dev
(类路径下的)
3、jar包中的 默认环境配置 (类路径下的application.properties
)
实际上,运维在部署时,除了使用上面的方式,还可以使用 如下的方式,来达到一样的效果。
我们可以在jar包的同级目录下 放一个 application-dev.yml
配置文件。这个配置文件 用于运维修改 或者新增覆盖配置。(弊端:这个配置文件的位置是 固定的
)
然后使用如下命令启动
java -jar boot.jar --spring.profiles,active=dev
然后,我们就可以修改这个配置文件,来覆盖jar包中的配置。
加载顺序:
1、外部:jar包同级目录的dev配置
2、内部:jar包内部的dev配置
3、外部:jar包同级目录的默认配置
4、内部:jar包内部的默认配置
二、如何判断 配置文件的加载?
首先看 jar包的启动命令中 是否指定了 配置环境--spring.profiles,active=dev
(dev/test),若指定了dev,则执行顺序是这样的:
1、先加载 跟jar包同一目录下的 application-dev.yml
2、然后在 加载 jar包内的 application-dev.yml
3、先加载 跟jar包同一目录下的默认环境配置 application.yml
4、再加载 跟jar内的默认环境配置 application.yml