SpringBoot War打包部署

news2024/10/7 18:22:16

修改打包方式

<packaging>war</packaging>

修改 Servlet 容器的 scope

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

由于我们会使用外部的 Tomcat,所以需要主动把嵌入式容器 spring-boot-starter-tomcat 依赖的 scope 声明为 provided,表示该依赖只用于编译、测试。

新增一个继承类

package org.example.springbootwar;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SpringBootWarApplication.class);
    }
}

我们需要继承 SpringBootServletInitializer 类并覆写其 configure(SpringApplicationBuilder application) 方法,通过该方法指定 @SpringBootApplication 所在类。

修改打包名称

 <build>      
       <finalName>spring-boot-war</finalName>
 </build>

使用 mvn 打包

# 先执行 clean,再执行 package,并且跳过测试用例的执行
mvn clean package -Dmaven.test.skip=true

部署到 tomcat

将打包好的 target/spring-boot-war.war包部署到 tomcat 的 webapp目录下。

访问对应springboot项目

// spring-boot-war 是 webapp目录下的包名,作为项目的根目录
curl 'http://120.0.0.1/spring-boot-war/test'

注意:

如果部署成功,但Spring Boot 没有启动日志,并且访问 404,则可能有 tomcat 的版本和 spring-boot的版本不一致。

需要查看 spring-boot-starter-web 对应的 内置tomcat 的版本。可以通过一下几个方法查看:

  • 查看依赖

    在 idea 中查看对应的 版本

    在这里插入图片描述

  • 到 mvnrepository 仓库中查看

    https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web/3.2.5
    

    在这里插入图片描述

Github

完整的代码:https://github.com/chenguowei/project_java/blob/main/spring-boot-examples-demo/spring-boot-war/README.md

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

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

相关文章

一分钟掌握苹果语音备忘录怎么导出的3个方法!

苹果设备自带的语音备忘录功能&#xff0c;让我们能够随时随地记录生活中的点滴声音&#xff0c;无论是会议内容、学习笔记还是灵感闪现&#xff0c;都能轻松捕捉。然而&#xff0c;有时我们可能需要将这些语音文件导出到其他设备或平台&#xff0c;以便更好地整理、分享或备份…

API提取IP

API代理作为IP代理的一项重要业务&#xff0c;在绕开地域网络限制&#xff0c;提高作业效率等方面提供强大的技术支持。它能够帮助用户快速实现软件与软件间的交流&#xff0c;无障碍连通不同应用程序逻辑开发的系统应用。API代理用途范围广泛&#xff0c;如使用API提取代理IP、…

xinput1 3.dll丢失怎么办?详细解析靠谱的xinput1 3.dll修复方法

当电脑出现提示&#xff0c;显示 ​xinput1_3.dll​文件缺失时&#xff0c;这实际上是一种常见的DLL文件遗失错误&#xff0c;其修复过程通常相对简单。今天&#xff0c;我们将探讨四种不同的方法来解决 ​xinput1_3.dll​缺失的问题。 一.xinput1_3.dll文件解析 xinput1_3.d…

RabbitMQ的幂等性、优先级队列和惰性队列

文章目录 前言一、幂等性1、概念2、消息重复消费3、解决思路4、消费端的幂等性保障5、唯一 ID指纹码机制6、Redis 原子性 二、优先级队列1、使用场景2、如何添加3、实战 三、惰性队列1、使用场景2、两种模式3、内存开销对比 总结 前言 一、幂等性 1、概念 2、消息重复消费 3、…

金职在线 央企国企 跟私企都有哪些区别

一、性质不同 央企国企是国家的全资子公司&#xff0c;属于国有企业。私企就是由自然人投资设立或由自然人控股&#xff0c;以雇佣劳动为基础的营利性经济组织。 二、管理不同 央企国企有完整的审批程序和监管机制&#xff0c;而私企的决策相对简单。国企是政府管理的&#…

李彦宏:程序员将不复存在! 周鸿祎回怼!网友:先把百度程序员都开除了!

近日&#xff0c;百度创始人、董事长兼首席执行官李彦宏在央视《对话》•开年说的访谈中指出&#xff1a;“基本上说以后其实不会存在“程序员”这种职业了&#xff0c;因为只要会说话&#xff0c;人人都会具备程序员的能力”。 “未来的编程语言只会剩下两种&#xff0c;一种…

.net EntityFramework EF

创建EF 方法1 方法二 安装的 版本是 中间没有弹出让选框架的界面&#xff0c; EF三种开发方式 1》》 db first 先设计数据库→然后在代码通过EF与数据库建立映射关系&#xff0c;是EF最早的一种使用方式,使用广泛.以数据库为驱动&#xff0c;生成实体模型&#xff0c;从而驱…

------分割线之 WebSecurityConfigrerAdapter弃用问题------

WebSecurityConfigurerAdapter 被弃用的原因是 Spring Security 项目的维护者希望将项目的主要开发工作集中在新的配置方式上&#xff0c;即基于 Java 的配置&#xff08;Java Configuration&#xff09;和基于 Lambda 的表达式。这主要是因为 Spring 5.0 引入了重量级的 Java …

k8s pod 无法启动一直ContainerCreating

情况如下&#xff0c;更新 pod 时&#xff0c;一直在ContainerCreating 查看详细信息如下 Failed to create pod sandbox: rpc error: code Unknown desc [failed to set up sandbox container “334d991a478b9640c66c67b46305122d7f0eefc98b2b4e671301f1981d9b9bc6” networ…

精益思想赋能数字化转型:落地策略与实践路径

当下&#xff0c;数字化转型已不再是选择题&#xff0c;而是关乎企业生存与发展的必答题。然而&#xff0c;转型过程中如何确保效率、降低成本并快速实现价值创造&#xff0c;成为了摆在众多企业面前的难题。精益思想作为一种追求精益求精、持续改进的管理思维&#xff0c;为数…

一般神经网络的微分与网络参数的初始化

(文章的主要内容来自电科的顾亦奇老师的 Mathematical Foundation of Deep Learning, 有部分个人理解) 一般深度神经网络的微分 上周讨论的前向和反向传播算法可以推广到任意深度神经网络的微分。 对于一般的网络来说&#xff0c;可能无法逐层分割&#xff0c;但仍然可以用流…

顺序表经典算法:头脑风暴来袭

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;http://t.csdnimg.cn/XSLtz&#xff08;经典算法题&#xff09; 小新的主页&#xff1a;编程版小新-CSDN博客 前言…

利用Landsat遥感卫星数据反演地表温度的方法与应用

随着遥感技术的快速发展&#xff0c;Landsat系列卫星数据成为了地表温度监测和研究的重要数据源之一。本文将介绍如何利用Landsat数据反演地表温度的方法以及在环境监测、气候变化、水文循环和农业生产等领域的应用。 1. Landsat数据概述 Landsat卫星是美国国家航空航天局&…

NVM和NodeJS安装教程

NVM和NodeJS安装教程 NVM和NodeJS安装教程 NVM和NodeJS安装教程一、下载 NVM二、安装 NVM三、安装 NodeJS1. 安装指令2. 查看下载的所有node版本3. 使用版本4. 检查是否安装成功 四、配置 NVM 和 NodeJS1. 配置环境变量2. 配置node_global和node_cache 用的 NVM 下载&#xff0…

学习随手记ComboBoxEx选定项的值value和text值获取方法

代码&#xff1a;dotNetBar2中的ComboxBoxEx的使用方法 //获取选定项的value值 string _v ((DevComponents.Editors.ComboItem)cbo_cmdType.SelectedItem).Value.ToString(); //获取选定项的text值 string _t ((DevComponents.Editors.ComboItem)cbo_cmdType.SelectedItem)…

论文解读:(CAVPT)Dual Modality Prompt Tuning for Vision-Language Pre-Trained Model

v1文章名字&#xff1a;Dual Modality Prompt Tuning for Vision-Language Pre-Trained Model v2文章名字&#xff1a;Class-Aware Visual Prompt Tuning for Vision-Language Pre-Trained Model 文章汇总 对该文的改进&#xff1a;论文解读&#xff1a;(VPT)Visual Prompt …

更新!!!Unity移动端游戏性能优化简谱

UWA官方出品&#xff0c;结合多年优化经验撰写了《Unity移动端游戏性能优化简谱》&#xff0c;文章从Unity移动端游戏优化的一些基础讨论出发&#xff0c;例举和分析了近几年基于Unity开发的移动端游戏项目中最为常见的部分性能问题&#xff0c;并展示了如何使用UWA的性能检测工…

Golang特殊init函数

介绍 init()函数是一个特殊的函数&#xff0c;存在一下特性 不能被其它函数调用&#xff0c;而是子main()函数之前自动调用不能作为参数传入不能有传入参数和返回值 作用&#xff1a; 对变量进行初始化检查/修复程序状态注册运行一次计算 以下是<<the way to go>>…

环保设备产线智能工厂数字孪生可视化平台,推进制造业数字化转型

环保设备产线智能工厂数字孪生可视化平台&#xff0c;推进制造业数字化转型。数字化转型已成为制造业发展的重要趋势&#xff0c;而环保设备产线智能工厂数字孪生可视化平台则是推进制造业数字化转型的关键之一。环保设备产线智能工厂数字孪生可视化平台是一种基于数字孪生技术…

JS实现对用户名、密码进行正则表达式判断,按钮绑定多个事件,网页跳转

目标&#xff1a;使用JS实现对用户名和密码进行正则表达式判断&#xff0c;用户名和密码正确时&#xff0c;进行网页跳转。 用户名、密码的正则表达式检验 HTML代码&#xff1a; <button type"submit" id"login-btn" /*onclick"login();alidate…