SpringBoot War打包部署

修改打包方式

<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 {@Overrideprotected 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.mzph.cn/pingmian/3512.shtml

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

相关文章

精选30个大模型高频面试题

我精选30个大模型高频面试题&#xff0c;分享给大家 介绍一下postlayernorm和prelayernorm的区别什么是思维链&#xff08;CoT&#xff09;提示&#xff1f;你觉得什么样的任务或领域适合用思维链提示&#xff1f;你了解ReAct吗&#xff0c;它有什么优点&#xff1f;解释一下l…

Mybatis入门(入门案例,IDEA配置SQL提示,JDBC介绍,lombok介绍)

目录 一、Mybatis入门案例介绍整体步骤创建SpringBoot项目pom依赖准备测试数据新建实体类配置Mybatis数据库连接信息新建接口类,编写SQL代码单元测试 二、IDEA配置SQL提示三、JDBC是什么案例JDBC和Mybatis对比 四、数据库连接池介绍如何实现一个数据库连接池切换数据库连接池 五…

Sentinel 与 OpenFeign 断路器:Hystrix 已过时,Sentinel 强势崛起

简介 随着微服务架构的流行&#xff0c;服务之间的通信变得日益频繁。为了保证系统的稳定性和可靠性&#xff0c;在服务之间的通信中使用断路器是至关重要的。本文将介绍 OpenFeign 与 Sentinel 结合使用的方法&#xff0c;强调 Hystrix 已经过时&#xff0c;并展示 Sentinel …

Python和C++音调音符规划和算法

&#x1f3af;要点 &#x1f3af;音符表征和代码实现&#xff1a;&#x1f58a;半音位置和索引之间的转换 | &#x1f58a;全音阶音调表征 | &#x1f58a;全音阶缓存 | &#x1f58a;全音阶音高表征。&#x1f3af;音程表征和代码实现&#xff1a;&#x1f58a;音程质量 | &a…

Oracle导出导入dmp等文件类型的多表数据的常用方法、遇见的常见问题和解决办法(exp无效sql???)

使用PLSQL执行导出表数据的时候有两种方法 1、使用Oracle命令【imp--exp】【impdp--expdp】 但是如果你的本机没有安装有Oracle数据库&#xff0c;使用的instant client远程连接服务器上的Oracle数据库时候&#xff0c;你没有Oracle数据库带有的exp.exe、imp.exe等扩展文件&a…

有没有降低三维设计软件版权成本的方案?

企业是否都苦恼三维设计软件购买成本太高了&#xff1f;如投入商业使用&#xff0c;三维设计软件一般涉及正版的版权购买。但是&#xff0c;正版的版权购买费用较贵&#xff0c;且支持一台电脑使用。企业每年购买正版三维设计软件都需要很大一笔支出&#xff0c;随着企业不断发…

Android kotlin 协程异步async与await介绍与使用

一、介绍 在kotlin语言中&#xff0c;协程是一个处理耗时的操作&#xff0c;但是很多人都知道同步和异步&#xff0c;但是不知道该如何正确的使用&#xff0c;如果处理不好&#xff0c;看似异步&#xff0c;其实在runBloacking模块中使用的结果是同步的。 针对如何同步和如何异…

day04 51单片机-矩阵按键

1 矩阵按键 1.1 需求描述 本案例实现以下功能&#xff1a;按下矩阵按键SW5到SW20&#xff0c;数码管会显示对应的按键编号。 1.2 硬件设计 1.2.1 硬件原理图 1.2.2 矩阵按键原理 1.3软件设计 1&#xff09;Int_MatrixKeyboard.h 在项目的Int目录下创建Int_MatrixKeyboard…

Acer宏碁掠夺者战斧300笔记本电脑PH315-52工厂模式原装Win10系统安装包 恢复出厂开箱状态 带恢复重置

宏碁掠夺者PH315-52原厂Windows10工厂包镜像下载&#xff0c;预装oem系统 链接&#xff1a;https://pan.baidu.com/s/1grmJzz6nW1GOaImY_ymXGw?pwdi286 提取码&#xff1a;i286 原厂W10系统自带所有驱动、PredatorSense风扇键盘控制中心、Office办公软件、出厂主题壁纸、系统…

C语言简易类json格式解析

在使用MQTT时&#xff0c;获取的数据基本上都是json格式的&#xff0c;虽然C语言也可以添加第三方的解析库&#xff0c;但有些资源少的单片机用着还是挺吃力的&#xff0c;所以自己简单写了一个从json格式中获取数据的&#xff0c;说白了就是一个字符串查找。就比如下面这一段 …

Scrapy 爬虫教程:从原理到实战

Scrapy 爬虫教程&#xff1a;从原理到实战 一、Scrapy框架简介 Scrapy是一个由Python开发的高效网络爬虫框架&#xff0c;用于从网站上抓取数据并提取结构化信息。它采用异步IO处理请求&#xff0c;能够同时发送多个请求&#xff0c;极大地提高了爬虫效率。 二、Scrapy运行原…

如何使用PHP进行JSON编码和解码?

如何使用PHP进行JSON编码和解码&#xff1f; 使用PHP进行JSON编码和解码是开发过程中非常常见的任务。JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;它使得人们能够很容易地阅读和编写&#xff0c;同时也使得机器能够解析和…

阐述 Git 命令 reset 和 revert

1 概述 由于某次或某几次提交的代码污染了远程分支&#xff0c;需要对远程分支代码进行恢复操作&#xff0c;此时可以通过 git 的 reset 和 revert 命令进行恢复。 HEAD 是指向当前分支的最新提交的指针 &#xff0c;每一次提交代码都会产生一个 commit id 来标识工作区的变更…

Elasticsearch单机部署(Linux)

1. 准备环境 本文中Elasticsearch版本为7.12.0&#xff0c;JDK版本为1.8.0&#xff0c;Linux环境部署。 扩展&#xff1a; &#xff08;1&#xff09;查看Elasticsearch对应的常用的jdk版本如下&#xff1a;&#xff08;详情可看官网的支持一览表&#xff09; Elasticsearch a…

贪吃蛇项目实践!(下)

NextIsFood 比较蛇指向的节点和食物指向的节点是否相同 //pSnakeNode psn 是下⼀个节点的地址 //pSnake ps 维护蛇的指针 int NextIsFood(pSnakeNode psn, pSnake ps) {return (psn->x ps->_pFood->x) && (psn->y ps->_pFood->y); }EatFood //…

机器学习 -- 分类问题

场景 探讨了一个回归任务——预测住房价格&#xff0c;用到了线性回归、决策树以及随机森林等各种算法。本次中我们将把注意力转向分类系统。我们曾经对MNIST进行了分类任务&#xff0c;这次我们重新回到这里&#xff0c;细致的再来一次。 开始 获取数据 Scikit-Learn提供了…

ELK 日志分析系统(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释&#xff0c;Kiabana 服务的默认监听端口为5601 server.po…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

nodejs连接oracle批量更新数据测试

条件&#xff1a;oracle数据库,数据表20w。所有测试都在本机执行&#xff0c;保持相同的网络带宽。因为机器性能和更新速度问题&#xff0c;这里只测试更新1w数据。 方式1&#xff1a;nodejs代码程序块更新 const sql "declare i number: 0;begin" " while i …

为什么分类问题不能使用mse损失函数,更容易理解版本

分类问题通常不适合使用均方误差&#xff08;Mean Squared Error&#xff0c;MSE&#xff09;损失函数&#xff0c;原因如下&#xff1a; 1.输出差异&#xff1a; 输出差异的度量不同&#xff1a;MSE损失函数是基于预测值和真实值之间的差异的平方和进行计算的&#xff0c;适…