外部 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)
相关推荐
方也_arkling7 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮7 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei117 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1127 小时前
web-第一次课后作业
java·开发语言·idea
秋98 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本8 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁8 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
basketball6169 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
JAVA面经实录91710 小时前
MyBatis面试题库
java·mybatis
小江的记录本10 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试