为什么要使用Spring Boot而不是不带Spring Boot的?

12

我很困惑,为什么我应该在我的下一个项目中使用Spring Boot? Spring Boot和无Spring Boot版本一样强大吗?还是有一些你不能用Spring Boot做的事情。

2个回答

16

Spring Boot是一种带有“电池”和个人化设置的Spring框架。如果您使用它,您将浪费更少的时间在非功能特性上,因为您可以免费获得很多东西。以下是我观察到与经典Spring设置相比的优点(当然还有更多,请查看Spring Boot网站):

  • 依赖管理-常用库的版本已预先选择并分组在不同的starter POM中,您可以将其包含在项目中。通过选择一个Spring Boot版本,您隐式地选择了数十个依赖项,否则您需要自己选择和协调。
  • 自动配置-您无需手动配置调度程序servlet、静态资源映射、属性源加载器、消息转换器等
  • 高级外部化配置-有一个大的bean属性列表可以通过application.properties文件进行配置,而无需触及java或xml配置
  • "生产就绪"特性-您可以免费获取健康检查、应用程序和jvm指标、http和几个其他方面的jmx
  • 可运行的JAR-您可以将应用程序打包为可运行的JAR,并包含嵌入式Tomcat,以便它呈现为自包含部署单位

我没有观察到任何缺点,毕竟这只是Spring。您可以构建任何您可以使用“原始”Spring构建的东西,只不过更快。


谢谢您的解释,但是Spring Boot真的被用于生产(线上)项目或一些快速原型吗?为什么Spring Boot有主方法,而Spring MVC不喜欢(在网站案例中)? - Yosua Lijanto Binar
主方法已经存在,因此您可以直接从jar运行项目。您还可以构建war(在pom.xml中很容易选择)并进行传统的部署到tomcat或其他独立的servlet容器。从那里开始,它的工作方式与Spring MVC相同,因为它Spring MVC。 - mzc
啊,我明白了。在我的脑海中,只有一种方式可以部署Spring项目(通过war并上传到tomcat)。但是有一个问题,如果有Spring Boot而且没有额外的优势,为什么Spring要让用户手动完成他们的工作呢? - Yosua Lijanto Binar
@YosuaLijantoBinar 总会有一些情况,当专业的Spring设置不可用时,你需要进行自定义。例如,许多公司要求你在WebSphere或Weblogic上部署。即使Spring Boot WAR可以在它们上面部署,它们仍然包含WarLauncher在软件包内并且文件大小显著增大。但除此之外,没有太多理由不这样做。 - g00glen00b

6

这是我的简单解释:

没有Spring Boot,你需要在构建配置文件(如pom.xml)中放置所有依赖项的正确版本,并手动配置所有bean,这看起来对于普通项目来说非常繁琐。因此,Spring Boot会自动完成这些任务,假设一些惯例。例如,如果您只在pom.xml中包含spring-boot-starter-web依赖项,则会自动按默认惯例配置Web应用程序。

更有趣的是,可以非常轻松地覆盖默认配置的部分。

阅读几篇官方指南会更深入地了解Spring Boot。总的来说,除非应用程序太过异常,否则人们现在似乎更喜欢使用Spring Boot。

谈到实力,Spring Boot可以被视为仅是一个配置层。因此,使用Spring Boot也应该能够实现Spring中可能出现的所有功能。


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Yosua Lijanto Binar
结构是Spring Boot提供的默认结构。如果没有使用Spring Boot,就必须自己设计结构。正如@mzc在评论中所解释的那样,Spring Boot默认生成一个带有嵌入式Tomcat的JAR/WAR文件。因此需要主方法。对于Web应用程序,在两种情况下都会使用Spring MVC:它将是Spring MVC + Spring Boot + 您的自定义与Spring MVC + 完全自己设计结构。 - Sanjay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接