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.验证部署
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。