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文件,因为他的优先级最高


相关文章
|
17天前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
110 64
SpringBoot项目打war包流程
|
4月前
|
Java 数据库连接 Maven
springBoot:项目建立&配置修改&yaml的使用&resource 文件夹(二)
本文档介绍了如何创建一个基于Maven的项目,并配置阿里云仓库、数据库连接、端口号、自定义启动横幅及多环境配置等。同时,详细说明了如何使用YAML格式进行配置,以及如何处理静态资源和模板文件。文档还涵盖了Spring Boot项目的`application.properties`和`application.yaml`文件的配置方法,包括设置数据库驱动、URL、用户名、密码等关键信息,以及如何通过配置文件管理不同环境下的应用设置。
465 1
|
21天前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
97 36
|
12天前
|
自然语言处理 IDE Java
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
28 5
|
3月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
157 1
SpringBoot获取项目文件的绝对路径和相对路径
|
3月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
79 8
|
3月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
71 2
|
4月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
446 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
3月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
75 2
|
3月前
|
前端开发 Java Spring
SpringBoot项目thymeleaf页面支持词条国际化切换
SpringBoot项目thymeleaf页面支持词条国际化切换
104 2