我们的视频上云网关EasyCVR和EasyCVS项目也上线一段时间了,项目一般上线过程中,我们都是用外部的配置文件,防止每次迭代更新时,都需要再次整理配置文件。

视频联网云平台EasyCVS如何做到不修改代码的情况下修改配置文件?

所以我们项目中配置文件都是放在这样的目录下:

视频联网云平台EasyCVS如何做到不修改代码的情况下修改配置文件?

视频联网云平台EasyCVS如何做到不修改代码的情况下修改配置文件?

打包完之后就是一个.jar文件,此时如果想进行修改配置文件的操作,就无法进行了。那么怎样才能在此处修改配置文件呢?

解决方式

SpringBoot项目启动后会扫描以下路径的application.yml或application.properties,优先级由高到低,高优先级的配置会覆盖低优先级的配置。(1.2为jar包外,3.4位jar包内)
1、-file:./config/ (jar)根目录下的config目录下
2、-file:./ (jar)根目录下
3、-classpath:/config/ classpath路径下的config目录下
4、-classpath:/ classpath路径下

解决方法

在jar包根目录创建config目录,将配置文件application.yml或application.properties上传至根目录下。
项目正常打jar包,内外的配置文件可以并存互补。
开发人员修改配置文件后需要更新config目录下的同名配置文件。
用户修改config下的配置文件后只需重启项目既可以(修改后需告知开发人员,以便代码同步)。

视频联网云平台EasyCVS如何做到不修改代码的情况下修改配置文件?

此时,项目中的文件内容是dev,打包后启动.jar包文件以启动项目,

视频联网云平台EasyCVS如何做到不修改代码的情况下修改配置文件?

此时可以看到和配置文件中一样的。如果我们不重新打包想改变这个值就需要使用外置配置文件来修改此值。

此时在.jar包同级目录下配置一个配置文件,将值改为prod。

视频联网云平台EasyCVS如何做到不修改代码的情况下修改配置文件?

视频联网云平台EasyCVS如何做到不修改代码的情况下修改配置文件?

此时在启动项目,此时可以看到值已经改成prod了。

视频联网云平台EasyCVS如何做到不修改代码的情况下修改配置文件?

相关文章:

  • 2022-12-23
  • 2021-12-09
  • 2021-07-29
  • 2021-07-26
  • 2021-11-16
  • 2021-10-06
  • 2022-12-23
猜你喜欢
  • 2021-06-28
  • 2022-12-23
  • 2022-02-07
  • 2021-10-19
  • 2022-12-23
  • 2021-04-13
  • 2021-05-25
相关资源
相似解决方案