关于Spring和SpringBoot的区别你真的知道吗?

一.介绍一下SpringBoot

​ 在介绍 SpringBoot 之前我们首先来简单介绍一下 Spring。Spring 是诞生于2002年的 Java 开发框架,可以说已经成为 Java 开发的事实标准。所谓事实标准就是虽然 Java 官方没有说它就是开发标准,但是在当前 Java 开发的众多项目中,当我们谈到产品级的 Java 项目的时候,大多都是基于 Spring 或者应用了 Spring 特性的。

Spring 基于 IOC 和 AOP 两个特性对 Java 开发本身进行了大大的简化。但是一个大型的项目需要集成很多其他组件,比如一个 WEB 项目,至少要集成 MVC 框架、Tomcat 这种 WEB 容器、日志框架、ORM框架,连接数据库要选择连接池吧……使用 Spring 的话每集成一个组件都要去先写它的配置文件,比较繁琐且容易出错。

然后就有了SpringBoot。

Spring Boot 是由 Pivotal 团队提供的全新框架,2014 年 4 月发布 Spring Boot 1.0 2018 年 3 月 Spring Boot 2.0发布。它是对spring的进一步封装,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。怎么简化的呢?就是通过封装、抽象、提供默认配置等方式让我们更容易使用。

SpringBoot 基于 Spring 开发。SpringBoot 本身并不提供 Spring 框架的核心特性以及扩展功能,也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。

关于 SpringBoot 有一句很出名的话就是约定大于配置。采用 Spring Boot 可以大大的简化开发模式,它集成了大量常用的第三方库配置,所有你想集成的常用框架,它都有对应的组件支持,例如 Redis、MongoDB、Jpa、kafka,Hakira 等等。SpringBoot 应用中这些第三方库几乎可以零配置地开箱即用,大部分的 SpringBoot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

二.为什么会出现SpringBoot呢?

​ Spring Boot 的诞生背景不仅仅是为了简化基于 Spring 框架的开发,更是因为微服务架构的兴起。2014年,Martin Fowler发表了一篇博客介绍微服务,将微服务架构风格推向了大众视野。相对于单体应用,微服务架构将应用拆分为一组小型服务,每个服务运行在自己的进程内,通过HTTP等方式相互通信。这种架构风格为开发者提供了更好的可维护性和可扩展性。

​ Spring Boot 作为新一代基于 Spring 框架的应用程序开发框架,它的目标是帮助开发者快速、敏捷地进行开发。相比传统的基于 Spring 框架的开发方式,Spring Boot 不仅提供了快速开发的能力,还集成了大量常用的第三方库配置,如 Redis、MongoDB、JP A、RabbitMQ、Quartz等,这些库可以零配置进行开箱即用。这大大降低了开发者的学习和配置成本,让开发者能够更加专注于业务逻辑。

​ 传统的单体应用架构虽然也有优点,如测试和部署相对简单,方便水平扩展,但它的缺点也非常明显。单体应用往往牵一发而动全身,更改一个小小的功能就需要重新部署整个应用,这对开发者和运维人员都是一种负担。而且随着用户需求的不断增长,单体应用也很难满足这些需求,这就需要更加灵活和可扩展的架构。

​ 另外,Spring Boot 还提供了各种工具和插件,如Spring Boot CLI和Spring Boot Actuator等,这些工具可以帮助开发者更加便捷地进行开发、测试和部署。

​ 总之,Spring Boot 的诞生是为了适应时代的变化和需求,它为开发者提供了一种更加快速、敏捷、可扩展和可维护的开发方式,也为企业提供了更加稳定和可靠的应用架构

三.SpringBoot有哪些优势?

1.提高开发效率

Spring Boot 提供了丰富的解决方案,使得开发变得简单且高效。开发者只需要引入相应的依赖库,就能够快速集成各种解决方案,从而提升开发效率。另外,Spring Boot 还提供了大量的 Starters,这些 Starters 集成了主流的开源产品,使用起来非常方便。

2.简化配置

Spring Boot 通过自动配置机制,使得应用的配置变得简单。开发者只需要配置一些必要的参数,而不需要关注过多的细节。此外,Spring Boot 的自动配置机制也可以根据应用的环境自动调整配置参数,让开发者无需手动干预。

3.方便部署

Spring Boot 内嵌了启动容器,所以仅需要一个命令即可启动项目。这样使得部署变得非常简单和快速。另外,结合 Jenkins、Docker 等工具可以实现自动化运维,进一步提高部署效率和减少错误率。

4.简化监控

Spring Boot 自带的监控组件,可以轻松监控服务各项状态。使用 Actuator,可以获取应用的健康状况、性能瓶颈、运行时状态等信息,方便开发者对应用进行调优和优化。此外,Spring Boot 还支持各种监控工具的集成,如 Prometheus、Grafana 等。

总之,Spring Boot 在各个方面都能够为开发者带来很多的便利和效率提升。它的诞生也代表着 Java 开发已经进入了一个全新的阶段,将会在未来的软件开发领域扮演越来越重要的角色。

四.SpringBoot有哪些特点?

1.独立运行的Spring项目

Spring Boot允许将应用打包为jar文件并以独立运行的方式启动。这意味着我们无需安装额外的服务器或环境来运行我们的应用程序。只需要运行一个命令,我们就能够启动应用程序,大大简化了部署和运行的复杂性。

2.内嵌Servlet容器

Spring Boot内嵌了Tomcat、Jetty和Undertow等常用的Servlet容器,应用无需打成WAR包。这使得Spring Boot应用程序非常轻巧,并且能够快速启动和运行。

3.提供starter简化Maven配置

Spring Boot提供了许多starter POMs,这些starter POMs是预定义的依赖项集合,可以轻松地将第三方库集成到我们的应用程序中。通过使用starter POMs,我们可以避免手动添加大量的依赖项,从而使Maven配置变得更加简单。

4.提供大量自动配置

Spring Boot自动配置的特性大大简化了应用程序的开发。Spring Boot可以根据我们的应用程序的需求自动配置大部分组件,而我们只需要配置少量的内容。这极大地提高了开发效率。

5.自带应用监控

Spring Boot还具备监控应用程序的能力,可以自动暴露各种指标、健康状态和度量。这些指标可以通过HTTP端点进行访问,因此我们可以通过浏览器或者监控工具轻松地查看应用程序的状态。

6.无代码生成和XML配置

Spring Boot允许我们在没有XML配置的情况下进行开发。这意味着我们可以使用注解和代码来配置应用程序。这种开发方式更加直观和易于维护,也可以避免XML配置文件的繁琐和冗长。

7.简化了依赖管理

Spring Boot 可以自动管理依赖,减少了项目中依赖版本冲突的问题,可以让开发者更加专注于业务逻辑的实现。

8.提供了丰富的注解

Spring Boot 提供了丰富的注解,可以帮助开发者更加方便地进行配置和开发,同时也提高了代码的可读性。

9.集成了各种开发工具

Spring Boot 集成了各种开发工具,例如 Spring Tool Suite(STS)、IntelliJ IDEA、Eclipse 等,使得开发者可以更加方便地进行开发、测试和部署。

10.支持多种数据源和多种数据库

Spring Boot 支持多种数据源和多种数据库,包括 MySQL、PostgreSQL、Oracle、MongoDB 等,可以让开发者根据项目的需求选择最合适的数据库和数据源。

总之,Spring Boot 是一个非常强大和灵活的开发框架,可以大大提高开发者的开发效率和项目的部署效率。

五.Spring与SpringBoot区别有哪些?

Spring SpringBoot
Spring是一个开源轻量级框架,广泛用于开发企业应用程序 Spring Boot建立在传统的Spring框架之上,广泛用于开发REST API
Spring框架最重要的特性是依赖注入 Spring Boot最重要的特性是自动配置
有助于创建松散耦合的应用程序 有助于创建一个独立的应用程序,例如微服务等
要运行Spring应用程序,我们需要显式设置服务器 Spring Boot提供 Tomcat和Jetty等嵌入式服务器
要运行Spring应用程序,需要部署描述符 不需要部署描述符
为创建一个Spring应用程序,开发人员需要编写大量代码和配置 显著减少了代码和配置行
默认不提供内存数据库支持 默认提供了对内存数据库的支持,例如H2

六.总结

​ Spring Boot 是一个针对 Spring 框架的工具,它的设计初衷是为了简化 Spring 的配置流程,让开发者能够更加专注于应用程序的开发和业务逻辑实现,而不需要过多地关注配置问题。它采用了“默认大于配置”的理念,提供了很多已经集成好的方案,以便开发者在开发应用程序时能够轻松地进行零配置或极简配置。同时,为了保持灵活性,它也支持自定义操作。

​ Spring Boot 内置了许多 starter,这些 starter 可以帮助开发者快速地配置和使用常用的功能和组件,比如 Email 服务、Web 开发、数据库等等。开发者只需要添加相应的依赖即可使用,这样能够大大地减少配置的工作量。

​ 除了快速集成外,Spring Boot 还提供了大量的自动化配置,这些自动化配置能够帮助开发者更加高效地进行开发。它消除了在 Spring 中需要进行的繁琐的 XML 文件配置,使得开发变得更加快速、高效、自动化。

总之,Spring Boot 的出现让开发者更加轻松地开发和部署应用程序,省去了繁琐的配置工作,让开发者能够更加专注于业务逻辑的实现。

猜你喜欢

转载自blog.csdn.net/MaoXiaoMiaoYa/article/details/129654555