springboot项目启动指定项目外部yml配置文件

2023-05-16

spring boot的经典项目配置是application,yml,在项目打包部署运行的时候,这个文件也会一同打进包里,随之启动。

这就带来了一个问题:

如果部署的服务器发生了变动,那么项目中配置的IP地址等信息也要变动,然后再重新打包部署,步骤略微繁琐。

所以在项目中,应避免类似于这种配置像代码一样写死到项目中的操作。

我们对于项目的配置,应该是可以随时可以更改的,不需要将项目全盘重新打包部署。

那么应该如何避免这种需要多次打包部署的情况呢?

解决办法:把项目的配置文件放在src目录以外,在服务启动脚本中指定外部配置文件的位置

以我为例:我的项目部署在Linux系统,使用脚本启动,项目是个spring boot项目。

  1. 把项目的applicatiom.yml文件拿出来,避免项目再次将它识别为配置文件并读取。
  2. 打包,并放到服务器上(此时打出的jar包里没有application.yml配置文件)。
  3. 改脚本:脚本其实就是用命令启动,只不过一个脚本里可以有很多命令,用脚本执行就没那么麻烦,不用一个一个敲命令。所以看个人情况,没多少命令的话直接用命令也行,我这只放我的脚本:
#!/bin/sh
kill -9 `ps -ef|grep java | grep gat-0.0.1.jar | awk '{print $2}'` > /dev/null 2>&1
java -jar /sitracs/gat1049/gat-0.0.1.jar --spring.config.location=conf/application.yml --server.port=8081 > /dev/null 2>&1 &

最后一行的java -jar xxx.jar是运行jar包的命令,--server.port=8081是指定端口的参数,spring.config.location=conf/application.yml这个参数就是指定外部application.yml配置文件位置的参数,在运行jar包的命令中加入这个参数就可以指定jar包以外的配置文件的位置了。

PS:因为java -jar xxx.jar这个运行jar包的命令在Windows和Linux系统都可以用,所以后面的参数也是一样的,两个系统都可以用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot项目启动指定项目外部yml配置文件 的相关文章

随机推荐

  • bean实例化的方式

    1 最常见 使用构造方法 2 早些年 使用静态工厂的方式 3 更早些年的 使用实例化工厂的方式 4 spring框架常用 实现FactoryBean接口的方式
  • @Autowired

    1 Autowired依赖注入底层是通过反射暴力获取对象并赋值给属性 2 setter与构造器注入是通过给IOC容器提供入口注入的
  • C语言 Hanoi(汉诺)塔问题,用递归解决

    问题 古代有一个梵塔 xff0c 塔内有3个座A xff0c B xff0c C 开始时A座上有64个盘子 xff0c 盘子大小不等 xff0c 大的在下 xff0c 小的在上 有一个老和尚想把64个盘子从A作移到C座 xff0c 但规定每
  • Ubuntu server 22.04 安装kvm

    本人有一台工控机 xff0c 5500u cpu xff0c 8g 内存 xff0c 本来是打算用来跑docker的 xff0c 但是因为要装 k8s 虚拟机会更加合适方便 xff0c 宿主机的系统是ubuntu server 22 04
  • win10 linux 子系统 wsl2实现ip自动转发

    win10 系统带linux子系统有两个版本 第一个是wsl xff0c 它与windows 系统公用同1个ip地址 xff0c 但是没有自己内核 xff0c 不支持docker 第二个版本是wsl2 xff0c 它可以使用docker x
  • 【独家】互联网变现与计算广告(干货+5000字精彩问答)

    本讲座选自2015年9月28日刘鹏先生在清华大数据 技术 前沿 讲座上所做的题为 互联网变现与计算广告 的演讲 刘鹏 xff1a 大家好 xff0c 我是老的清华人 xff0c 诸位都是95后了 xff0c 你们出生的时候我是95年入学 清
  • 本地(window)使用alist和RaiDav网盘挂载

    一 背景 百度网盘的限速可能会让你转战阿里云盘 xff0c 但是阿里云盘的缺点在于不能分享 xff0c 网络上的资源都是通过各类网盘来分享的 xff0c 这样就会让你可能同时拥有不同网盘的账号 那么我们有没有一款工具 xff0c 可以将这些
  • 【笔记】ssd mobilenet 网络

    之前实习用过太多次mobilenet ssd xff0c 但是一直只是用 xff0c 没有去了解它的原理 今日参考了一位大神的博客 xff0c 写得很详细 xff0c 也很容易懂 xff0c 这里做一个自己的整理 xff0c 供自己理解 x
  • 添加与删除 Ubuntu 环境变量

    1 作者的系统是Ubuntu 13 10 xff0c 在其他linux发行版中环境变量的设置方式类似但会有不同 xff1b 2 这里以环境变量PATH为例 xff0c 环境变量还可以有很多 xff0c 也可以自己定义名称 什么是环境变量 环
  • [Kali Linux 安全渗透教程新手版]

    1 1什么是安全渗透 渗透测试时通过模拟黑客的攻击方法 来评估计算机网络系统安全的一种评估方法 通常的评估方式对评估结果更具全面性 而渗透测试更注重安全露的严重性 1 6Kali更新与升级 Ctrl 43 F1 快捷键提示 Ctrl 43
  • CTreeList 拖拽功能实现

    转载地址 http tech ddvip com 2008 11 122662837992492 html Visual C 43 43 中提供的MFC类CtreeCtrl xff08 树型控件 xff09 用来显示具有一定层次结构的数据项
  • 使用hex编码绕过主机卫士IIS版本继续注入

    本文作者 xff1a 非主流 测试文件的源码如下 xff1a 我们先直接加上单引号试试 xff1a http 192 168 0 20 conn asp id 61 1 27 很好 xff0c 没有报错 那我们继续 xff0c and 1
  • Win10启动VMware虚拟机结果宿主机蓝屏重启

    VM启动虚拟机结果宿主机蓝屏重启 xff0c 按照以下步骤处理即可 xff0c 我是通过升级VM版本最终解决的 xff0c 自己看自己的情况 xff0c 都试一下就行 1 操作控制面板 右键windows图标 xff0c 点击搜索 xff0
  • Debian9.12镜像下载及网络、软件源配置

    Debian9 12安装 配置 文章目录 获取镜像虚拟机安装配置网络配置合适的仓库源更新软件包 安装所需工具 搭建环境Debian镜像下载链接其他资源 获取镜像 Debian9 12 Debian 9 12 官方原版镜像下载 任我乐 ren
  • dpkg: 处理软件包 xxx (--configure)时出错 解决办法

    第一步 xff1a 备份 sudo mv var lib dpkg info var lib dpkg info bk 1 第二步 xff1a 新建 sudo mkdir var lib dpkg info 1 第三步 xff1a 更新 s
  • 解决SQL server中提示对象名无效

    用SQL server的时间不长 xff0c 但现在遇到两种情况 xff0c 在这里分别说一下解决办法 1 刚打开SQL server Manager Studio xff0c 想看看表里的信息 xff0c 就写一个查询语句 xff0c 结
  • 解决maven无法下载依赖的问题

    大概从2020年1月底的时候第一次遇到这个问题 xff0c 当时在假期期间自己写小Demo玩 xff0c 依赖下载不了就去找了个包放进去 xff0c 并没有太在意 直至几天后因为疫情在家远程办公的时候新项目的依赖一直下载不了 xff0c 困
  • 解决idea已经添加外部jar包但仍然找不到包的错误

    对于开发人员来说 xff0c 开发项目时除了maven下载的依赖之外 xff0c 一般都需要引入一些公司内部封装的jar包依赖 xff0c 但是有时候会出现明明已经build path了 xff0c 但是build项目的时候还是报错说某某包
  • vmware安装虚拟机提示此主机不支持64位系统,此系统无法运行

    原因 安装虚拟机提示这个是因为和电脑上的Hyper V服务冲突了 xff0c 解决办法是关闭Hyper V服务就可以了 步骤 打开控制面板找到程序和功能 点击启用或关闭Windows功能 找到Hyper V xff0c 此时状态是勾选的 取
  • springboot项目启动指定项目外部yml配置文件

    spring boot的经典项目配置是application yml xff0c 在项目打包部署运行的时候 xff0c 这个文件也会一同打进包里 xff0c 随之启动 这就带来了一个问题 xff1a 如果部署的服务器发生了变动 xff0c