面试题:Spring Boot应用的打包部署方式(jar/war、内嵌服务器)

Spring Boot应用的打包部署方式主要有两种:

jar

war

,分别对应不同的部署场景和需求。

### 1. 打包成 JAR 包部署

#### JAR (Java Archive) 方式

Spring Boot的一个核心特性就是其内嵌服务器(默认是Tomcat,也可更换为Jetty或Undertow等),这使得Spring Boot应用可以被打包成为一个单一的、可执行的JAR文件。这种打包方式简化了部署流程,因为无需在服务器上预先安装并配置应用服务器。

特点

- 使用`spring-boot-maven-plugin`或`spring-boot-gradle-plugin`插件构建时,会自动包含所有依赖以及内嵌的Servlet容器。

- 执行`mvn package`(Maven)或`./gradlew build`(Gradle)命令即可生成一个包含了所有必要运行时环境的fat/uber JAR(也称作可执行JAR)。

- 运行应用只需通过`java -jar your-app.jar`命令即可启动整个应用。

- 部署时只需要将这个JAR文件上传至服务器,并且在后台执行上述命令,不需要额外的Tomcat或其他应用服务器。

### 2. 打包成 WAR 包部署

#### WAR (Web Application Archive) 方式

尽管Spring Boot提倡的是内嵌服务器的部署模式,但为了满足某些传统应用服务器的部署要求或特定运维环境的需求,Spring Boot应用也可以被打包成WAR格式。

特点

- 需要在项目的构建配置中(pom.xml或build.gradle)指定打包类型为war,而不是默认的jar。

- 当打包成WAR时,Spring Boot不会包含内嵌的Servlet容器,而是期望应用部署到现有的、外部的Servlet容器(如Tomcat、Jetty等)中运行。

- 执行`mvn package`或`./gradlew build`后得到的WAR文件需要放到已安装的Servlet容器的webapps目录下进行部署。

- 外部Servlet容器需要由管理员单独安装、配置和管理。

总结来说,选择JAR还是WAR包装方式取决于具体的应用场景和运维要求。如果追求快速部署、简化运维流程,一般推荐采用JAR包方式;而在企业级环境中,如果已经有一个标准的Java EE应用服务器集群,或者需要利用到应用服务器提供的其他功能,则可以选择WAR包方式部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/782328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Web】NSSCTF Round#20 Basic 两道0解题的赛后谈

目录 前言 baby-Codeigniter 组合拳! 前言 本想着说看看go的gin框架就睡了的,r3师傅提醒说赛题环境已经上了,那不赶紧研究下😀 主要来谈谈做题的心路历程 baby-Codeigniter 拿到题目的第一反应应该是:“什么是C…

jmeter性能压测的标准和实战中会遇到的问题

1.性能标准建议 CPU 使用率:不超过 70% 内存使用率:不超过 70% 磁盘:%util到达80%严重繁忙 (os.disIO.filesystem.writeKbPS 每秒写入的千字节) 响应时间:95%的响应时间不超过8000ms 事务成功率&#xff1a…

pytest中文使用文档----6临时目录和文件

1. 相关的fixture 1.1. tmp_path1.2. tmp_path_factory1.3. tmpdir1.4. tmpdir_factory1.5. 区别 2. 默认的基本临时目录 1. 相关的fixture 1.1. tmp_path tmp_path是一个用例级别的fixture,其作用是返回一个唯一的临时目录对象(pathlib.Path&#xf…

阿里云2核4G服务器租用价格_30元3个月_165元一年_199元

阿里云2核4G服务器租用优惠价格,轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月,活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图: 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

PCL点云处理之 基于垂直度检测与距离聚类 的路面点云提取方案 (二百三十九)

PCL点云处理之 基于垂直度检测与距离聚类 的路面点云提取方案 (二百三十九) 一、算法流程二、具体步骤1.垂直度检测与渲染1.代码2.效果2.水平分布点云提取1.代码2.效果3.路面连通点云提取1.代码2.效果三、完整代码四、参考文献一、算法流程

Chapter 1 - 6. Introduction to Congestion in Storage Networks

NVMe/TCP NVMe/TCP carries NVMe commands over TCP transport (Figure 1-8) for accessing remote block storage via a lossy or sometimes lossless network. It is an OSI layer 5 (sessions layer) protocol. NVMe/TCP 通过 TCP 传输(图 1-8)传输 NVMe 命令,以便通过有…

Flutter 开发学习笔记(2):第一个简单的Flutter项目(下)

文章目录 前言官方Flutter案例侧边栏添加代码初始化展示效果 子组件私有数据空间导航栏转为有状态WidgetsetState手动转换页面实现效果 响应式动态切换宽度添加收藏夹,跨Widget传数据实现效果 完整代码后续进阶效果总结 前言 接着继续上一章的内容 官方Flutter案例…

简单了解策略模式

什么是策略模式? 策略模式提供生成某一种产品的不同方式 Strategy策略类定义了某个各种算法的公共方法,不同的算法类通过继承Strategy策略类,实现自己的算法 Context的作用是减少客户端和Strategy策略类之间的耦合,客户端只需要…

react hook 为循环出来的多个子组件添加ref

react hook 为循环出来的多个子组件添加ref 在React函数组件中,可以使用useRef钩子来获取当前组件的标签(DOM元素)。 父组件 const details useState([{name:A},{name:B},{name:C}])const bodyRefs useRef({});// 把ref挂载在循环出来的子组…

UE4 面试题整理

1、new与malloc的区别 new: new首先会去调用operator new函数,申请足够的内存(大多数底层用malloc实现),然后调用类型的构造函数来初始化变量,最后返回自定义类型的指针,delete先调用析构函数&…

设计模式之装饰模式精讲

概念:动态地给一个对象添加一些额外的职责。 装饰器模式侧重于在不改变接口的前提下动态地给对象添加新功能,保持对象结构的透明性,客户端无感知。 以一个咖啡制作和装饰的例子来帮助大家理解: public interface Coffee {double…

QT-自定义参数设计框架软件

QT-自定义参数设计框架软件 前言一、演示效果二、使用步骤1.应用进行参数注册2.数据库操作单例对象3.参数操作单例对象 三、下载链接 前言 常用本地数据参数通常使用的是xml等文本的格式,进行本地的数据参数的存储。这种参数的保存方式有个致命的一点,就…

YOLOv9改进策略 :主干优化 | ConvNeXtV2:适应自监督学习,让 CNN “再一次强大”?

💡💡💡本文改进内容:完全卷积掩码自编码器框架 ConvNeXt V2,它显著提高了纯convnet在各种识别基准上的性能,包括ImageNet分类,COCO目标检测和ADE20k分割。还提供了各种尺寸的预训练ConvNeXt v2模型,从而在ImageNet上具有76.7%精度的3.7M Atto model和88.9%精度的650…

zabbix主动发现,注册及分布式监控

主动发现 结果 主动注册 结果 分布式监控 服务机:132 代理机:133 客户端:135 代理机 数据库赋权: 代理机配置 网页上配置代理 客户端配置 网页上配置主机 重启代理机服务 网页效果

排序第五篇 归并排序

一 简介 归并排序(Merge Sort) 的基本思想是: 首先将待排序文件看成 n n n 个长度为1的有序子文件, 把这些子文件两两归并, 得到 n 2 \frac{n}{2} 2n​ 个长度为 2 的有序子文件; 然后再把这 n 2 \frac{n}{2} 2n​ 个有序的子…

PostCSS及其常用插件介绍

PostCSS及其常用插件介绍 前几天,PostCSS 6.0 分布了。 PostCSS 处理了很多你不必处理的乏味工作。它很巧妙的不同于预处理器,提供了可选的且更简洁的编程语言,来编译成 CSS,如 Sass、Less 与 Stylus。得出这个结论的部分原因是…

基于Tampermonkey 实现自动答题和视频播放

目录 一、环境准备 二、下载Tampermonkey 三、安装脚本 四、启用脚本 一、环境准备 微软自带的 edge 浏览器(电脑端) 二、下载Tampermonkey 安装地址:Tampermonkey 篡改猴(油猴脚本) 下载完成会在浏览器拓展中自动生成一个插件,此时点击管理拓展&…

WIFI驱动移植实验:WIFI从路由器动态获取IP地址与联网

一. 简介 前面两篇文章,一篇文章实现了WIFI联网前要做的工作,另一篇文章配置了WIFI配置文件,进行了WIFI热点的连接。文章如下: WIFI驱动移植实验:WIFI 联网前的工作-CSDN博客 WIFI驱动移植实验:连接WIF…

每日面经分享(Spring Boot: part2 DAO层)

1. Spring Boot DAO层的作用 a. 封装数据访问逻辑:DAO层的主要责任是封装与数据访问相关的逻辑。负责处理与数据库的交互,包括数据的增删改查等操作。通过将数据访问逻辑统一封装在DAO层中,可以提高代码的可维护性和可重用性。 b. 解耦业务逻…

pytest--python的一种测试框架--request请求加入headers

一、request headers中的cookie和session机制的作用与区别 Cookie 和 Session 是两种在客户端和服务器之间保持状态的技术。HTTP 协议本身是无状态的,这意味着服务器无法从上一次的请求中保留任何信息到下一次请求。Cookie 和 Session 机制就是为了解决这个问题。 …