spring-boot启动源码 servlet spring-boot 内嵌tomcat 外置tomcat
Spring Boot 应用可以以内嵌的方式使用 Tomcat 启动,也可以将应用部署到外部的 Tomcat 服务器中。
内嵌 Tomcat 启动:
Spring Boot 内置了 Tomcat,使用内嵌的 Tomcat 启动应用只需要编写一个主应用类并使用 @SpringBootApplication
注解。例如:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
外置 Tomcat 部署:
- 创建一个普通的 WAR 项目。
- 移除
spring-boot-starter-web
依赖中的tomcat
条目,并添加spring-boot-starter-web
的 WAR 版本。 - 在
pom.xml
中添加如下配置:
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.X.X.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
- 创建一个继承自
SpringBootServletInitializer
的 Application 类,并重写configure
方法。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
- 使用 Maven 的
war:war
目标打包应用,然后将生成的 WAR 文件部署到外部的 Tomcat 服务器中。
这样,你就可以根据需要选择使用内嵌的 Tomcat 还是外部的 Tomcat 来启动你的 Spring Boot 应用。
评论已关闭