首页 > 解决方案 > 使用 Spring Boot 构建基本 Web 应用程序的不同方法?

问题描述

我试图了解如何使用 Spring Boot 构建“基本”Web 应用程序。我在网上找到了不同的文章以各种不同的方式进行操作:

  1. 这篇文章
    • 使其成为主要课程
      • 利用@SpringBootApplication
      • extends SpringBootServletInitializer
      • 调用SpringApplication.run()main()
    • 最后创建@Controller和 JSP 页面
  2. 这篇文章与上面几乎相同,但不做主要调用extends SpringBootServletInitializer
  3. 这篇文章也和第一篇一样,唯一不同的是它是主类implements CommandLineRunner

我的问题:

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

标签: javaspringspring-boot

解决方案


方法是否正确?

是的。

它们之间有什么区别?

#1 扩展SpringBootServletInitializer,因此 Web 应用程序可以作为 .war 文件部署到独立的 servlet 容器中,而不是使用嵌入式 servlet 容器从命令行运行它。

#2 不需要该演示的可选功能。

#3 用于CommandLineRunner播种其演示所需的测试数据。

extends SpringBootServletInitializer在第 1 条中不必要?

是的。仅当您希望能够部署为 .war 文件时才需要。

我阅读CommandLineRunner是构建非网络应用程序所必需的。那么第 3 条中的示例是如何工作的呢?

非网络应用程序可能需要它,但这并不意味着它对网络应用程序无效。

非 Web 应用程序(可能)需要它作为运行主要非 Web 应用程序逻辑的入口点。

Web 应用程序不需要它,除非它们需要额外的初始化逻辑,因为嵌入式 servlet 容器由SpringApplication.run().


推荐阅读