java - 使用 Spring Boot 构建基本 Web 应用程序的不同方法?
问题描述
我试图了解如何使用 Spring Boot 构建“基本”Web 应用程序。我在网上找到了不同的文章以各种不同的方式进行操作:
- 这篇文章
- 使其成为主要课程
- 利用
@SpringBootApplication
extends SpringBootServletInitializer
- 调用
SpringApplication.run()
它main()
- 利用
- 最后创建
@Controller
和 JSP 页面
- 使其成为主要课程
- 这篇文章与上面几乎相同,但不做主要调用
extends SpringBootServletInitializer
- 这篇文章也和第一篇一样,唯一不同的是它是主类
implements CommandLineRunner
我的问题:
- 方法是否正确?
- 它们之间有什么区别?
- 第1条是
extends SpringBootServletInitializer
不必要的吗? - 我阅读
CommandLineRunner
是构建非网络应用程序所必需的。那么第 3 条中的示例是如何工作的呢?
解决方案
方法是否正确?
是的。
它们之间有什么区别?
#1 扩展SpringBootServletInitializer
,因此 Web 应用程序也可以作为 .war 文件部署到独立的 servlet 容器中,而不是使用嵌入式 servlet 容器从命令行运行它。
#2 不需要该演示的可选功能。
#3 用于CommandLineRunner
播种其演示所需的测试数据。
extends SpringBootServletInitializer
在第 1 条中不必要?
是的。仅当您希望能够部署为 .war 文件时才需要。
我阅读
CommandLineRunner
是构建非网络应用程序所必需的。那么第 3 条中的示例是如何工作的呢?
非网络应用程序可能需要它,但这并不意味着它对网络应用程序无效。
非 Web 应用程序(可能)需要它作为运行主要非 Web 应用程序逻辑的入口点。
Web 应用程序不需要它,除非它们需要额外的初始化逻辑,因为嵌入式 servlet 容器由SpringApplication.run()
.
推荐阅读
- parameters - 为不需要它们的模板指定的 AmazonCloudFormation 参数值
- powershell - Powershell 将对象写入 Excel
- swift - “Then”框架的do()函数的原生优雅方式
- python - read_excel 中的 usecols 问题:传入字符串列表
- http - IIS headerWaitTimeout ssems 对慢速 HTTP 标头攻击没有影响
- javascript - 如何制作带有可以在 p5js 中消失和重新出现的点的 2D 图案?
- python - 在另一台机器上保存后无法在 keras 中加载模型(形状不匹配)
- python - 在 debian 上部署到服务器后,Bot 在没有线程的情况下无法工作(telebot,python)
- c# - 程序不会列出第二个方法(Vypocetrychlosti2)
- android - 需要从热点断开设备的方法。(安卓)