springboot项目如何将配置文件外挂

简介: springboot项目如何将配置文件外挂

为什么要将配置文件外挂

因为springboot项目一般打出来的是jar包,如果要对里面的配置做修改,会比较麻烦,所以需要将配置文件外挂,方便操作哦

怎么做呢

我们先看一个常见的springboot项目的配置文件结构:

分为四个配置文件:

application.yml 表示主配置文件

application-dev.yml 表示本地

application-prod.yml 表示生产

application-test.yml 表示测试环境

外挂配置文件的思路就是(划重点)

在启动jar包的命令里面指定,需要跑的是哪一个配置文件,然后将该文件进行外挂即可,听起来有点晦涩难懂,下面看具体操作

演示

现实工作中,我们会把项目打成jar包,然后放到对应的linux服务器目录里面,一般会写一个脚本,用来方便的启动和停止jar包

第一步:将项目打成jar包,这个就不过多赘述了,因为不是本章讲解的重点

第二步:将jar包放到指定目录,

第三步:将外挂配置文件和jar包放在同级目录,

第四步:编写启动脚本,具体如下

#!/bin/sh
PIDFILE=hidbm.pid
if [ -f "$PIDFILE" ] && kill -0 $(cat "$PIDFILE"); then
  echo "hidbm is already running!"
  exit 1
fi
rm -f nohup.out
nohup java -jar hidbm.jar --spring.profiles.active=prod > ./run.log 2>&1 &
echo $! > $PIDFILE
echo "start succeed!"

重点主要就是这一句

nohup java -jar hidbm.jar --spring.profiles.active=prod > ./run.log 2>&1 &

第五步:顺便把停止脚本也贴出来吧

#!/bin/sh
PIDFILE=hidbm.pid
echo "pid file is $PIDFILE"
if [ ! -f "$PIDFILE" ] || ! kill -0 "$(cat "$PIDFILE")"; then
  echo "process not running..."
else
  echo "stopping process..."
  PID="$(cat "$PIDFILE")"
  kill -9 $PID
  rm -f "$PIDFILE"
  echo "stop succeed!"
fi

至此,外挂配置,大功告成,我们看一下最终的结构

bd-test-4:/opt/hidbm/hidbm-cloud # ll
total 90300
-rw-r--r-- 1 root root      310 Jun 25 10:45 application-prod.yml
-rw-r--r-- 1 root root 92426578 Jun 25 10:46 hidbm.jar
-rw-r--r-- 1 root root      410 Jun 25 10:51 start.sh
-rw-r--r-- 1 root root      272 Jun 25 10:51 stop.sh
bd-test-4:/opt/hidbm/hidbm-cloud # 

总结

1、我们将application-prod.yml文件提取到了最外面,和项目jar包同级

2、在启动脚本里面指定需要跑的是application-prod.yml这个文件

nohup java -jar hidbm.jar --spring.profiles.active=prod > ./run.log 2>&1 &

3、当项目启动的时候,springboot会默认先找同级的application-prod.yml文件,因为他的优先级最高


相关文章
|
1月前
|
Java 数据库连接 Maven
springBoot:项目建立&配置修改&yaml的使用&resource 文件夹(二)
本文档介绍了如何创建一个基于Maven的项目,并配置阿里云仓库、数据库连接、端口号、自定义启动横幅及多环境配置等。同时,详细说明了如何使用YAML格式进行配置,以及如何处理静态资源和模板文件。文档还涵盖了Spring Boot项目的`application.properties`和`application.yaml`文件的配置方法,包括设置数据库驱动、URL、用户名、密码等关键信息,以及如何通过配置文件管理不同环境下的应用设置。
109 1
|
1月前
|
NoSQL Java MongoDB
Springboot WebFlux项目结合mongodb进行crud
这篇文章介绍了如何使用Spring Boot WebFlux框架结合MongoDB进行基本的CRUD(创建、读取、更新、删除)操作,包括项目设置、实体类和Repository的创建、控制器的实现以及配置文件的编写。
47 0
Springboot WebFlux项目结合mongodb进行crud
|
18天前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
56 1
SpringBoot获取项目文件的绝对路径和相对路径
|
9天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
21 2
|
13天前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
36 8
|
1月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
352 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
20天前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
40 2
|
20天前
|
前端开发 Java Spring
SpringBoot项目thymeleaf页面支持词条国际化切换
SpringBoot项目thymeleaf页面支持词条国际化切换
50 2
|
20天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
34 1
|
22天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。

热门文章

最新文章

下一篇
无影云桌面