我刚开始学习Spring。在我的下一步中,我想开发更大型的Web应用程序。
现在我在想,我应该从Spring Boot还是Spring MVC开始。我已经阅读了一些资料,但因为两者看起来相似而感到困惑。
那么它们之间有什么区别呢?
我刚开始学习Spring。在我的下一步中,我想开发更大型的Web应用程序。
现在我在想,我应该从Spring Boot还是Spring MVC开始。我已经阅读了一些资料,但因为两者看起来相似而感到困惑。
那么它们之间有什么区别呢?
@Controller
注释的类,在这些类中实现了可以通过不同HTTP请求访问的方法。它还有一个等效的@RestController
用于实现基于REST的API。所以,Spring MVC是用于Web应用程序的框架,而Spring Boot是基于Spring的生产就绪项目初始化器。您可能会发现访问SO中的Spring MVC标签wiki以及Spring Boot标签wiki非常有用。
Spring MVC 和 Spring Boot 在其他回答中已经有了详细描述,因此,我不再重复,直接进入具体内容。 Spring Boot 和 Spring MVC 不是可比较的或相互排斥的。如果您想使用 Spring 进行 Web 应用程序开发,则无论如何都要使用 Spring MVC。您的问题变成了是否使用 Spring Boot。
对于开发普通的 Spring 应用程序或开始学习 Spring,我认为建议使用 Spring Boot。它极大地简化了工作,已准备好投入生产,并且正在迅速被广泛采用。
有时我看到初学者会问这个问题,因为在 STS(Spring Tool Suite)中有两个向导:一个用于创建 Spring Boot 项目,另一个用于创建 Spring MVC 项目。因此,我的建议是创建一个 Spring Boot 项目并在其中选择 Web 作为模块。
简单来说:
Spring Boot = Spring MVC + 自动配置(无需编写spring.xml文件进行配置)+ 服务器(可以使用嵌入式Tomcat、Netty、Jetty服务器)。
而且,Spring Boot 是一种有观点的框架,因此它的构建考虑到快速开发,减少配置时间,并拥有非常好的社区支持。
(演变:Spring -> Spring MVC -> Spring Boot,因此新版本具有旧版本功能的兼容性。) 注意: 这并不包含所有要点。
Spring MVC
是Spring框架的一个子项目,旨在设计和开发使用MVC(Model-View-Controller)模式的应用程序。Spring MVC的设计完全与Spring框架以及大多数其他子项目相集成。
Spring Boot
可以从Spring工程团队的这篇文章中很好地理解。它被认为是有偏见的,即它大力倡导一种快速开发的特定风格,但它设计得足够好,可以适应某些情况下对规则的例外处理。简而言之,它是一种约定优于配置的方法论,愿意理解您在必要时打破约定的需求。
SpringBoot实际上是预配置的,减少了模板配置,为开始应用程序提供了最简单或最快捷的方式。
SpringBoot将配置的烦恼从开发人员转移到自己身上,而不是Spring。
隐式地,SpringBoot基于Spring框架的概念,如bean、controller、services、jpa等。
你可以说SpringBoot是Spring的包装器。
在SpringBoot中,默认情况下Server的端口是8080,但如果您想更改端口,请转到您的application.properties文件并编写
server.port=8084
使用Spring Boot,你将不需要构建配置,当你创建项目时,这一切都会自动完成。
如果你使用Spring MVC,你需要自己构建配置。虽然更加复杂,但这是至关重要的。
这样来想:
Spring MVC是一个面向Web的框架,用于实现MVC架构。
Spring Boot是一种面向程序员的工具。程序员应该专注于编程,而工具则应专注于配置。因此,我们不需要浪费时间配置大量的XML文件来创建一个简单的“Hello world”应用。
不重复之前的回答,
我写这篇回答是为了那些想要开始新项目但不知道哪个框架最好的人。
如果你是这个框架的初学者,我推荐使用spring boot(与STS /Spring Tool Suite一起使用)。因为它非常有帮助。它自动完成所有配置。此外,使用Hibernate作为数据库框架与spring-boot结合使用。这样的组合将使您的应用程序变得更好。我的经验可以保证。
即使这是目前JEE中最好的框架之一,但它在不久的将来会逐渐消失。轻量级的替代方案正在出现。所以要随时更新你的经验,不要固守某一个特定的框架。最好的方法是掌握概念,而不是框架。
Spring MVC和Spring Boot存在不同的目的。因此,将它们作为竞争对手进行比较是不明智的。
什么是Spring Boot?
Spring Boot是一种框架,可以使用合理的默认值打包Spring应用程序。这是什么意思?假设您正在使用Spring MVC、Spring Data、Hibernate和Tomcat开发Web应用程序。如何将此应用程序打包并部署到Web服务器上?目前为止,我们必须手动编写配置、XML文件等以部署到Web服务器。
Spring Boot为您在项目中提供零XML配置。相信我,您不需要部署描述符、Web服务器等。Spring Boot是一个神奇的框架,为您捆绑所有依赖项。最终,您的Web应用程序将成为一个带有内嵌服务器的独立JAR文件。
如果您仍然困惑于此工作原理,请阅读有关使用Spring Boot开发微服务框架的文章。
什么是Spring MVC?
它是一种传统的Web应用程序框架,可帮助您构建Web应用程序。它类似于Struts框架。
Spring MVC是一种Java框架,用于构建Web应用程序。它遵循模型-视图-控制器设计模式。它实现了核心Spring框架的所有基本功能,如控制反转、依赖注入。
Spring MVC通过DispatcherServlet的帮助提供了在Spring框架中使用MVC的优雅解决方案。这里,DispatcherServlet是一个接收传入请求并将其映射到正确资源(例如控制器、模型和视图)的类。
我希望这能帮助您理解差异。
Spring Boot
й…ҚзҪ®жҲ‘зҡ„Webеә”з”ЁзЁӢеәҸпјҢ然еҗҺдҪҝз”ЁSpring MVC
е®һзҺ°WebеҠҹиғҪпјҹ - Mike