Meh*_*lik 7 java deployment tomcat spring-boot
我们为什么要扩展SpringBootServletInitializer以便将SpringBoot应用程序运行到外部tomcat?
如果没有扩展SpringBootServletInitializer它在嵌入式tomcat上运行那么为什么有必要SpringBootServletInitializer在将它部署到外部tomcat 时进行扩展?
较旧的Servlet容器不支持Servlet 3.0中使用的ServletContextInitializer引导过程.您仍然可以在这些容器中使用Spring和Spring Boot,但是您需要在应用程序中添加web.xml并将其配置为通过DispatcherServlet加载ApplicationContext.
为了创建可部署的war文件,是提供一个SpringBootServletInitializer子类并覆盖其configure方法.这利用了Spring Framework的Servlet 3.0支持,并允许您在servlet容器启动时配置应用程序.通常,您更新应用程序的主类以扩展SpringBootServletInitializer.
@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);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以参考以下链接
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html
以下是更多信息:
为了部署Servlet基于 Web 应用程序(例如Spring),您实际上需要提供传统的web.xml.
我们还可以使用WebApplicationInitializer接口以编程方式执行相同的操作。根据文档
在 Servlet 3.0+ 环境中实现的接口,以便以编程方式配置 ServletContext — 与传统的基于 web.xml 的方法相反(或可能与其结合)。
正如 SpringBoot 建议使用JavaConfigurationover xml configuration.
它使用 JavaConfiguration 而不是 web.xml.
它具有SpringBootServletInitializer最终实现WebApplicationInitializer接口并覆盖它onStartup来配置事物的类。
| 归档时间: |
|
| 查看次数: |
3099 次 |
| 最近记录: |