外部 Tomcat 部署详细

1. 改造为 WAR 项目

修改 pom.xml 打包方式
复制代码
<packaging>war</packaging>
排除内嵌容器
复制代码
<!-- 如之前误引 spring-boot-starter-tomcat 需 provided,本 DAY 无 -->
添加 provided 范围的 Servlet API(已做可跳过)
复制代码
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>
新建 ServletInitializer(Spring 纯注解需要)
复制代码
public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[] { AppConfig.class, DataConfig.class }; // 后两者合并也行
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return null; // 已全在 Root 里
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }
}

若你仍用 web.xml 可跳过本类,但建议统一注解。


2. Maven 打包

复制代码
mvn clean package -DskipTests
# 生成 target/library.war (≈ 18 MB)
相关推荐
2601_94980959几秒前
flutter_for_openharmony家庭相册app实战+照片详情实现
android·java·flutter
4311媒体网2 分钟前
Libvio.link 页面布局与数据分布
java·php
奋斗的小方6 分钟前
01 一文读懂UML类图:核心概念与关系详解
java·uml
长安城没有风11 分钟前
Java 高并发核心编程 ----- 线程池原理与实践(上)
java·juc
Remember_99311 分钟前
Spring 核心原理深度解析:Bean 作用域、生命周期与 Spring Boot 自动配置
java·前端·spring boot·后端·spring·面试
风流倜傥唐伯虎16 分钟前
java多线程打印
java·多线程
80530单词突击赢19 分钟前
云原生时代:.NET与Java的K8s进化论
java
hhy_smile21 分钟前
Special method in class
java·开发语言
我命由我1234525 分钟前
Android 开发 Room 数据库升级问题:A migration from 6 to 7 was required but not found.
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
黄筱筱筱筱筱筱筱27 分钟前
7.适合新手小白学习Python的异常处理(Exception)
java·前端·数据库·python