一、pom.xml文件配置
1.1 在pom.xml里设置
<packaging>war</packaging>
1.2 移除嵌入式tomcat插件
<!--排除tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
或在starter-web中排除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
1.3 添加war包依赖以设置名称
<build>
<!--war包名称-->
<finalName>${project.artifactId}</finalName>
<plugins>
<!--对项目打war包依赖-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
二、配置 SpringBoot 启动类
2.1 继承SpringBootServletInitializer类,重写configure方法
@SpringBootApplication(scanBasePackages = "com.hdro")
@EnableTransactionManagement //事务
public class HdxxcjProApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(HdxxcjProApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(HdxxcjProApplication.class);
}
}
- Servlet 容器加载机制:在 Java Web 开发中,Servlet 容器负责加载和管理 Servlet。Servlet 容器会在启动时读取 web.xml 文件(或者使用 Servlet 3.0 注解)来获取应用程序的配置信息,并加载相应的 Servlet。对于 SpringBoot 应用程序来说,它也是一个 Servlet,需要被加载到 Servlet 容器中才能运行。
- SpringBoot 启动类:SpringBoot 应用程序通常有一个主类,其中包含 main 方法。这个主类使用 SpringBoot 的 @SpringBootApplication 注解标记,它告诉 SpringBoot 应用程序的入口点。在内嵌 Tomcat 的情况下, SpringBoot 会自动检测并启动应用程序,而在外部 Tomcat 中,我们需要告诉 Tomcat 如何加载 SpringBoot 应用程序。
- SpringBootServletInitializer 作用:SpringBootServletInitializer 是 SpringBoot 提供的一个抽象类,用于支持将 SpringBoot 应用程序部署到外部 Servlet 容器中。通过继承 SpringBootServletInitializer 类并重写其 configure 方法,我们可以告诉外部 Servlet 容器如何初始化 SpringBoot 应用程序,并指定 SpringBoot 应用程序的主类。
- configure 方法重写:在 configure 方法中,我们需要调用 SpringApplicationBuilder 的 sources 方法并传递 SpringBoot 应用程序的主类,以告诉外部 Servlet 容器从哪里加载 SpringBoot 应用程序。SpringBoot 会在部署到外部 Servlet 容器时自动检测到这个 configure 方法,并使用它来初始化应用程序。
2.2 执行 mvn clean package
命令完成打包
mvn clean package
2.3 war部署到Tomcat
将war包放到tomcat->webapps中,并配置项目访问路径(conf->server.xml文件中)
<Context path="/xaxxcj" docBase="xaxxcj" reloadable="true" debug="0">
2.4 启动Tomcat
启动项目 bin->startup.bat
标签:容器,SpringBoot,tomcat,Spring,boot,应用程序,Servlet,configure From: https://blog.csdn.net/zhyooo123/article/details/143265192