SpringBoot——嵌入式 Servlet容器
Spring Boot 使用嵌入式 Servlet 容器,意味着你不需要部署 WAR 文件到外部容器中,Spring Boot 会对 Tomcat、Jetty 或 Undertow 等进行封装,并内置了这些容器,使得你可以直接将应用打包成一个可执行的 JAR 文件,通过 Java -jar 命令就可以运行应用。
以下是一个简单的 Spring Boot 应用示例,使用了内嵌的 Tomcat 作为 Servlet 容器:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class ServletContainerApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ServletContainerApplication.class, args);
}
// 如果需要打包成war包,需要继承SpringBootServletInitializer并重写configure方法
@Override
protected void configure(SpringApplicationBuilder builder) {
builder.sources(ServletContainerApplication.class);
}
}
在这个例子中,ServletContainerApplication
类通过继承 SpringBootServletInitializer
并重写 configure
方法来支持将应用打包成 WAR 文件。如果你不打算将应用部署为 WAR,则不需要重写 configure
方法。
当你运行 main
方法并使用 Spring Boot 的 Maven 或 Gradle 插件打包时,你可以得到一个可执行的 JAR 文件,通过 Java 命令就可以启动内嵌的 Tomcat 容器。
如果你想要打包成 WAR 文件,可以在 pom.xml
或 build.gradle
中添加相应配置,并调用 mvn package
或 gradle war
命令来生成 WAR 文件。
注意:Spring Boot 2.0 以上版本不再直接支持 WAR 文件的生成,如果你需要生成 WAR 文件,可能需要使用传统的方式进行配置或者考虑使用支持 WAR 文件的 Servlet 容器(比如 Undertow)。
评论已关闭