使用springboot打包成zip部署,并实现优雅停机

使用springboot打包成zip部署可以方便地将应用程序部署到任何环境中。配合优雅停机功能可以在应用程序需要停止运行时,平滑地关闭运行中的所有任务,确保应用程序不会因为意外关机而出现问题。下面是实现这一目标的完整攻略。

准备工作

在开始之前,需要先准备好以下环境和工具:
- JDK 1.8 或以上版本
- Maven 3.3 或以上版本
- SpringBoot 2.0 或以上版本
- 命令行终端

打包成zip

首先,可以在SpringBoot项目根目录下运行以下命令来构建打包应用程序:

mvn clean package

执行完毕后,将生成 jar 包,通过以下命令把jar包打包成zip文件

zip -r xxx.zip xxx-0.0.1-SNAPSHOT.jar

其中,xxx-0.0.1-SNAPSHOT.jar是项目打包后生成的jar文件名,xxx是应用程序的名称,可根据实际情况进行替换。

部署和启动

接下来,可以将打包好的zip文件拷贝到目标服务器上,并使用以下命令解压缩:

unzip xxx.zip -d xxx

其中,第一个xxx是zip文件名,第二个xxx是解压缩后的目录名称,可自行指定。

解压缩后,进入解压缩后的目录,运行以下命令启动应用程序:

nohup java -jar xxx-0.0.1-SNAPSHOT.jar > /dev/null &

其中,nohup&都是为了让SpringBoot程序在后台运行,不会因为关闭终端而停止运行。/dev/null是用于重定向标准输出的特殊文件,可以将应用程序的输出信息输出到黑洞,并将控制台输出释放给其他程序或进程。

优雅停机

为了实现优雅停机,可以在SpringBoot项目的application.properties文件中配置以下内容:

server.shutdown=graceful

这样,在应用程序收到关闭信号后,Spring Boot会尝试完成正在运行的任务,并等待所有任务完成后再优雅地关闭。此配置只适用于SpringBoot 2.3之后的版本。

如果使用的是Spring Boot 2.2或更早的版本,则可以使用以下配置:

spring.lifecycle.timeout-per-shutdown-phase=20s

这个配置会让Spring Boot在关闭前等待20秒,以确保所有正在运行的任务顺利完成。如果这个时间段内任务未完成,则Spring Boot会强制关闭应用程序。

事实上,为了更好地应对复杂的场景和实际需求,Spring Boot还提供了许多其他可定制和扩展的管理配置和功能,可以根据实际情况进行选择和配置。

示例一

以一个使用SpringBoot框架实现的档案管理系统为例,在服务器上使用如下命令将项目打包成zip

zip -r archive.zip archive-0.0.1-SNAPSHOT.jar

其中,archive-0.0.1-SNAPSHOT.jar是打包后生成的jar文件,archive是项目名称,可自行更改。

拷贝压缩好的zip文件到目标服务器中,使用以下命令解压文件:

unzip archive.zip -d archive

其中,第一个archive是zip文件名,第二个archive是解压缩后的目录名称,可自行指定。

然后,运行以下命令启动应用程序:

nohup java -jar archive-0.0.1-SNAPSHOT.jar > /dev/null &

注意,在执行上述命令时,需要先进入存放jar包的目录下,否则会提示文件找不到。

最后,在浏览器中输入http://服务器地址:8080即可访问部署成功的档案管理系统。

示例二

以一个使用SpringBoot框架实现的工作流引擎为例,在服务器上使用如下命令将项目打包成zip

zip -r workflow.zip workflow-0.0.1-SNAPSHOT.jar

其中,workflow-0.0.1-SNAPSHOT.jar是打包后生成的jar文件,workflow是项目名称,可自行更改。

拷贝压缩好的zip文件到目标服务器中,使用以下命令解压文件:

unzip workflow.zip -d workflow

其中,第一个workflow是zip文件名,第二个workflow是解压缩后的目录名称,可自行指定。

然后,运行以下命令启动应用程序:

nohup java -jar -Dspring.profiles.active=dev workflow-0.0.1-SNAPSHOT.jar > /dev/null &

注意,在执行上述命令时,需要先进入存放jar包的目录下,否则会提示文件找不到。 -Dspring.profiles.active=dev指定了SpringBoot的运行环境为dev环境。

最后,在浏览器中输入http://服务器地址:8080即可访问部署成功的工作流引擎。以上就是使用SpringBoot打包成zip部署,以及实现优雅停机功能的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用springboot打包成zip部署,并实现优雅停机 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 使用Spring Boot搭建Java web项目及开发过程图文详解

    下面我会为您详细讲解使用SpringBoot搭建JavaWeb项目及开发过程。本文将按照以下步骤详细展开: 环境准备及SpringBoot的简介 创建一个简单的SpringBoot项目 开发一个简单的RESTful接口 创建一个数据库,并通过MyBatis实现与之交互 使用Thymeleaf模板引擎开发前端页面 部署及运行项目 环境准备及SpringBoot…

    Java 2023年5月15日
    00
  • string类和LocalDateTime的相互转换方式

    下面是详细讲解“string类和LocalDateTime的相互转换方式”的完整攻略。 string类和LocalDateTime的相互转换方式 在Java编程中,因为工作所需,我们经常需要将String类型的数据和LocalDateTime类型的数据进行相互转换。在这里,我将为大家介绍基于Java8的两种常用的字符串与LocalDateTime之间的相互转…

    Java 2023年6月1日
    00
  • JavaScript onblur与onfocus事件详解

    JavaScript onblur 与 onfocus 事件详解 onblur和onfocus是JavaScript中的两个常见的事件。在本文中,我们将详细讲解这两个事件的定义、用法和示例。 onblur事件 onblur事件会在当前元素失去焦点时触发,例如当用户从一个文本框中切换到另一个控件时,或者点击任何区域以使控件失去焦点时。下面是一个示例: <…

    Java 2023年6月15日
    00
  • 基于springboot2集成jpa,创建dao的案例

    基于Spring Boot 2集成JPA(Java Persistence API),创建DAO (Data Access Object) 的攻略还是比较简单的。下面我将为你提供一个详细的过程。 1. 创建Spring Boot项目和配置文件 首先,我们需要创建一个Spring Boot的项目,如果你已经创建了一个项目,那就不需要再做这一步了。我们使用Mav…

    Java 2023年5月19日
    00
  • Spring Boot用户注册验证的实现全过程记录

    Spring Boot用户注册验证的实现全过程记录 在Spring Boot中实现用户注册验证可以帮助我们确保只有合法的用户才能够使用我们的服务,让我们的应用更加安全可靠。本攻略将介绍如何使用Spring Boot实现完整的用户注册及验证功能。 1. 创建Spring Boot项目并添加相关依赖 首先,需要创建一个Spring Boot项目,并在pom.xm…

    Java 2023年6月3日
    00
  • Mybatis plus多租户方案的实战踩坑记录

    Mybatis plus多租户方案的实战踩坑记录 什么是多租户 多租户,即多租户架构,是一种软件架构模式,指的是多个客户(租户)共用相同的软件应用系统、数据库和服务器等资源,并且每个租户数据是彼此独立,系统中一个租户的数据不能被其他租户访问。 Mybatis plus多租户 Mybatis plus是Mybatis的增强版,提供了多租户的支持,可以通过配置自…

    Java 2023年6月16日
    00
  • Java中实现String字符串用逗号隔开

    实现Java中用逗号隔开字符串有多种方法,其中最常见的方法是使用String类提供的split()方法来实现。下面将提供两个示例来说明如何使用split()方法实现用逗号隔开字符串的功能。 示例一:使用split()方法 String str = "apple,banana,orange"; String[] strArr = str.s…

    Java 2023年5月26日
    00
  • JSP Session超时设置的实现方法

    JSP Session超时设置是指当用户在一段时间内没有活动,Session将被自动销毁。下面我将为你详细讲解JSP Session超时设置的实现方法: 步骤一:设置web.xml文件 在web.xml文件中设置Session超时时间,可以使用以下步骤: 在web.xml文件中加入以下代码: <session-config> <sessio…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部