Java 为什么在将“SpringBootServletInitializer”部署到外部tomcat时需要扩展它
为什么我们要扩展Java 为什么在将“SpringBootServletInitializer”部署到外部tomcat时需要扩展它,java,tomcat,spring-boot,deployment,Java,Tomcat,Spring Boot,Deployment,为什么我们要扩展SpringBootServletInitializer,以便将SpringBoot应用程序运行到外部tomcat 如果没有扩展SpringBootServletializer它在嵌入式tomcat上运行,那么为什么在将它部署到外部tomcat时需要扩展SpringBootServletializer?旧的Servlet容器不支持Servlet3.0中使用的ServletContextInitializer引导过程。您仍然可以在这些容器中使用Spring和Spring Boot,
SpringBootServletInitializer
,以便将SpringBoot
应用程序运行到外部tomcat
如果没有扩展SpringBootServletializer它在嵌入式tomcat上运行,那么为什么在将它部署到外部tomcat时需要扩展SpringBootServletializer?旧的Servlet容器不支持Servlet3.0中使用的ServletContextInitializer引导过程。您仍然可以在这些容器中使用Spring和Spring Boot,但需要将web.xml添加到应用程序中,并将其配置为通过DispatcherServlet加载ApplicationContext 为了创建可部署的war文件,需要提供SpringBootServletilizer子类并重写其配置方法。这利用了Spring框架的Servlet3.0支持,并允许您在Servlet容器启动应用程序时对其进行配置。通常,您会更新应用程序的主类以扩展SpringBootServletilizer 你可以参考下面的链接
以下是一些详细信息: 为了部署基于
Servlet
的web应用程序(如Spring
),您实际上需要提供传统的web.xml
我们也可以使用接口以编程的方式做同样的事情。根据文件
要在Servlet 3.0+环境中实现的接口,以便
以编程方式配置ServletContext——与(或)相反
可能与传统的基于web.xml的方法结合使用
正如SpringBoot建议的那样,在xml配置上使用JavaConfiguration
它使用JavaConfiguration而不是web.xml
它有SpringBootServletInitializer
类,该类最终实现WebApplicationInitializer
接口,并在启动时覆盖它的来配置东西 一个问题。。为什么我们需要此功能保护的SpringApplicationBuilder配置(SpringApplicationBuilder应用程序)?没有此功能,我的应用程序运行正常。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}