首先声明,这个自动部署,只是把配置文件单独放在服务器上进行配置,修改了配置文件,仍然需要重启!只是减少了不必重新打包这一步!
脚本见附件。
1.总结脚本原理
执行脚本->获取同级目录下的包->读取包的信息->判断是否在运行->在运行的杀掉->执行启动命令,并指定配置文件路径->打印执行是否成功
2.SpringBoot加载外部文件原理
1)SpringBoot从application.properties或者application.yml读取配置.
2)SpringApplication会默认将命令行选项参数转换为配置信息.
3)从命令行指定配置项的优先级最高(可以通过setAddCommandLineProperties来禁用).
3.总结优点
1)修改了配置文件信息(例,修改数据库密码)需在服务器的配置文件上修改,重启服务,无需重新打包。
2)给测试、UAT等多个环境发版,只需打一次包。无需每个环境改一次变量重新打包。
3)可复用,脚本中只配置了操作同级目录的jar或war,不包含任何项目信息。
4.脚本详细介绍
if [ -e *.jar -o -e *.war ];then 判断是否存在jar包或war包,-e:做判断,-0:或者。
SERVER_JAR=ls -l |awk '{print $9}'| grep .jar$
读取jar包信息,并把第9行信息(jar名字)赋值给server_jar变量。
pid=$(ps -ef | grep $SERVER_JAR | grep -v grep | awk '{print $2}') 获取jar包的进程号(第2行信息),赋值给pid变量。grep -v grep:排除当前命令的进程号。
if ps -p $pid> /dev/null 判断进程是否在运行。> /dev/null:把返回信息扔进黑洞。
kill -9 ${pid} 干掉进程。
nohup java $JAVA_OPTS -jar $SERVER_JAR --spring.config.location=./application.yml >/dev/null 2>&1 & 启动jar包,并指定配置文件地址。
if [[ $? -ne 0 ]]; then 判断上一步命令是否正常执行,正常返回0,不正常返回不等于0的数字(一般是1)。ne:不等于。
exit 1 返回不等于1的,告诉系统执行异常了。
相关推荐
标题中的“springboot mqtt emq整合单独版”意味着这是一个使用Spring Boot与EMQ(Erlang MQTT Broker)集成的项目,目的是实现MQTT消息传递功能。EMQ是一个开源的MQTT消息代理,支持大规模并发连接和高可用性,常...
Spring Boot以其“开箱即用”的特性,内置的Tomcat服务器以及自动配置功能,深受开发者喜爱。而当项目规模扩大,模块化设计变得尤为重要。本文将详细探讨如何在Spring Boot项目中实现多模块的Maven配置。 首先,...
在本项目中,"springboot+vue实现超大文件分片极速上传与下载完整前后端源码",我们看到了一个采用现代Web技术构建的高效文件管理系统。这个系统利用了SpringBoot后端框架和Vue.js前端框架的优势,为处理大文件上传...
3. **内嵌式 Web 服务器**:SpringBoot 可以内嵌 Tomcat、Jetty 或 Undertow 等 Web 服务器,无需单独打包或部署。这使得开发和测试过程更为便捷,`spring-boot-starter-web` 模块中包含了这些内嵌服务器的配置。 4...
在本教程中,我们将深入探讨SpringBoot的源码和配置文件,以便更好地理解和利用这个强大的工具。 首先,让我们来看看SpringBoot的启动流程。SpringBoot应用通常由`main`方法启动,该方法中包含了`SpringApplication...
- 针对每个环境创建单独的配置文件,如 `application-dev.properties`、`application-pro.properties` 和 `application-test.properties`,分别配置各个环境的特定信息。 3. **命令行启动参数**: - 打包...
1. **灵活性**:无需在每个服务实例中维护单独的配置文件,降低了运维复杂度。 2. **高可用**:配置变更即时生效,减少了因重启服务带来的停机时间。 3. **易扩展**:支持多种配置类型,如properties、yaml等,适用...
它支持Tomcat、Jetty等主流的Servlet容器,并且可以将这些容器内嵌到应用中,避免了传统方式下需要单独部署和管理服务器的步骤。这不仅简化了部署流程,同时也提高了开发和测试的效率。 《SpringBoot实战 完整版》...
2. **嵌入式Web服务器**:SpringBoot支持内嵌Tomcat、Jetty等Web服务器,这意味着你无需单独打包和部署到外部服务器,可以直接运行jar文件启动应用。 3. **自动配置(Auto Configuration)**:SpringBoot会根据项目...
在学习SpringBoot的过程中,常见的主题可能包括:起步依赖的理解与使用、配置文件的应用、Spring Boot Actuator的使用、如何集成数据库(如MySQL、PostgreSQL)、RESTful API的开发、Spring Cloud微服务架构的入门等...
5. 配置文件:如application.properties或application.yml,定义了SpringBoot的各种配置,包括服务器端口、数据库连接信息等。 6. 自动配置类:可能包含针对物联网特性的自定义配置。 7. 测试代码:用于验证代码功能...
SpringBoot默认使用内嵌的Tomcat服务器,这意味着我们不需要单独部署到像Tomcat这样的外部服务器上,而是可以直接运行生成的JAR或WAR文件。 ### 运行与测试 启动应用后,你可以通过浏览器或Postman等工具访问`...
4. **配置文件隔离**:可以为每个服务创建单独的配置文件,如`application-serviceA.properties`和`application-serviceB.properties`,并在启动时通过`--spring.config.location`指定。 三、Spring Profiles ...
1. **前端准备**:使用Webupload配置文件分块上传,设置每块大小,如2MB。同时,需要保存每个块的上传状态和文件总大小,以便于续传。 2. **后端接收**:SpringBoot后端需要处理分块请求,为每个块生成唯一的标识,...
自动配置使得开发者无需编写大量XML配置文件,SpringBoot会根据项目中的类路径自动配置相应的Bean。内嵌Servlet容器则意味着我们不再需要单独部署到外部服务器,可以直接运行jar包启动应用。起步依赖是SpringBoot...
2. 内置Tomcat:SpringBoot默认集成了Tomcat服务器,并且可以在Java应用中直接运行,打包成一个可执行的jar文件,无需单独部署到外部的Web服务器。这种方式极大地简化了部署流程,提高了开发效率。 3. 减少XML配置...
2. **内嵌Servlet容器**:SpringBoot可以内嵌Tomcat、Jetty等Servlet容器,这样就不需要单独打包和运行Web服务器,简化了部署流程。 3. **起步依赖**(Starter POMs):SpringBoot提供了一系列的起步依赖,比如`...
- 在配置文件中添加集群服务器地址和端口号。 - 编写 Redis 集群配置文件类,用于配置 Redis 客户端。 - 在 Service 层接口中定义方法,并在实现类中使用 RedisTemplate 进行缓存操作。 - 在 Controller 层调用 ...
- **部署策略**:SpringBoot应用通常作为独立服务部署,而Vue 3应用可以构建为静态资源,部署在SpringBoot应用或单独的静态服务器上。 教程中可能涵盖从设置开发环境、创建第一个SpringBoot和Vue应用,到实现用户...