我试图了解如何使用Spring Boot构建“基本” Web应用程序。我在网上找到不同的文章,以各种不同的方式来做到这一点:
@SpringBootApplication
extends SpringBootServletInitializer
SpringApplication.run()
中呼叫main()
@Controller
和JSP页面extends SpringBootServletInitializer
implements CommandLineRunner
我的问题:
extends SpringBootServletInitializer
是否不必要?CommandLineRunner
是构建非Web应用程序所必需的。那么第3条中的示例是如何工作的?答案 0 :(得分:3)
方法正确吗?
是的
它们之间有什么区别?
#1扩展了SpringBootServletInitializer
,因此也可以作为.war文件将Web应用程序 部署到独立的servlet容器中,而不是使用嵌入式servlet从命令行运行它容器。
#2演示中不需要该可选功能。
#3使用CommandLineRunner
来演示其演示所需的测试数据。
extends SpringBootServletInitializer
在第1条中是否不必要?
是的。仅在您希望能够作为.war文件进行部署时才需要。
我读过
CommandLineRunner
是构建非Web应用程序所必需的。那么第3条中的示例如何工作?
对于非Web应用程序可能是必需的,但这并不意味着它对于Web应用程序无效。
(可能)非Web应用程序需要它作为运行主要非Web应用程序逻辑的入口点。
Web应用程序不需要它,除非它们需要额外的初始化逻辑,因为嵌入式Servlet容器由SpringApplication.run()
自动启动。