SpringBoot取消内置Tomcat启动,改用外接Tomcat呢?
在日常开发中,我们有时候不想使用SpringBoot自带的Tomcat,那么在SpringBoot中,如何使用外部Tomcat服务器呢?下文笔者将一一道来,如下所示
SpringBoot取消内置Tomcat,启用外部Tomcat的实现思路
1.在pom.xml中移除Tomcat的依赖 2.添加 Servlet API依赖 ,并设置为provided(可避免打包时,打包进war包中) 3.打包为WAR文件 4.配置Spring Boot应用程序为WAR部署 5.maven 构建 WAR 包 6.部署 WAR包到 Tomcat中例:SpringBoot取消内置服务器,使用外部Tomcat服务器的示例
1.移除内置Tomcat依赖
需要排除Spring Boot默认的Tomcat依赖
在`spring-boot-starter-web`中引入
可在`pom.xml`中进行如下配置:
<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>
2.添加`provided`范围的Servlet API依赖
添加此依赖,
主要确保编译时能够识别Servlet API
需添加一个`provided`范围Servlet API依赖
这可以防止Servlet API被包含在最终的WAR文件中
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
3.打包为WAR文件
Spring Boot应用程序需要被打包为WAR文件才能部署到外部的Tomcat服务器
你需要在`pom.xml`中将打包类型设置为`war`
<packaging>war</packaging>
4.配置Spring Boot应用程序为WAR部署
为了保证Spring Boot应用程序能够正确部署为WAR文件
你需要继承`SpringBootServletInitializer`类
并重写`configure`方法
例:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
5.构建WAR文件
使用Maven构建WAR文件
mvn clean package
使用以上maven构建完成后
在`target`目录下找到生成的WAR文件
6.部署WAR文件到外部Tomcat
将生成WAR文件复制到外部Tomcat服务器`webapps`目录中
Tomcat会自动解压并部署WAR文件
例:
cp target/my-test.war /path/to/tomcat/webapps/
7.启动外部Tomcat
启动外部Tomcat服务器:
/path/to/tomcat/bin/startup.sh
8.验证部署
打开浏览器
访问你的应用程序
确保它正常运行
例:
如果Tomcat运行在默认端口8080
且你应用上下文路径为`my-test`
可访问:
http://localhost:8080/my-test
使用以上的方法
可成功地将Spring Boot应用程序
从内置的Tomcat切换到外部的Tomcat服务器
以下是关键步骤的总结
1.移除内置Tomcat依赖
2.添加`provided`范围Servlet API依赖
3.将打包类型设置为`war`
4.配置Spring Boot应用程序为WAR部署
5.构建WAR文件
6.部署WAR文件到外部Tomcat
7.启动外部Tomcat
8.验证部署
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


