使用Spring Boot构建基本Web应用程序的不同方法?

时间:2018-12-01 00:04:27

标签: java spring spring-boot

我试图了解如何使用Spring Boot构建“基本” Web应用程序。我在网上找到不同的文章,以各种不同的方式来做到这一点:

  1. This文章
    • 成为主要班级
      • 使用@SpringBootApplication
      • extends SpringBootServletInitializer
      • 在其SpringApplication.run()中呼叫main()
    • 最后创建@Controller和JSP页面
  2. This文章与上面的文章几乎相同,但并未对其进行主要调用extends SpringBootServletInitializer
  3. This文章也与第一篇相同,唯一的不同在于它使其主要类为implements CommandLineRunner

我的问题:

  1. 方法正确吗?
  2. 它们之间有什么区别?
  3. 第1条中的extends SpringBootServletInitializer是否不必要?
  4. 我读过CommandLineRunner是构建非Web应用程序所必需的。那么第3条中的示例是如何工作的?

1 个答案:

答案 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()自动启动。