spring和springboot的区别(4大区别详解)

spring和springboot的区别(4大区别详解)-mikechen

Java面试经常会问到spring和springboot的区别,下满我就来重点详解spring和springboot的区别@mikechen

Spring

Spring是一个开源的Java企业应用程序框架,用于构建基于Java的Web应用程序和服务。

Spring框架,包含:Spring IOCSpring AOP等模块,如下图所示:

spring和springboot的区别(4大区别详解)-mikechen

Spring框架至今已集成了20多个模块,这些模块分布在以下模块中:

  • 核心容器,比如:Spring IOC等;
  • 数据访问集成等;
  • Web层;
  • Spring AOP模块;
  • 消息传输(Messaging);
  • 测试(Test)模块等;

Spring框架的优点包括:简化开发、提高生产力、提高代码可重用性、易于测试、提供AOP和事务管理等。

但是,Spring 最大的弊端,需要大量的 XML 配置,不管项目整体大小,都需要大量的配置文件搭建架构。

所以,后面SpringBoot来简化Spring应用开发,约定大于配置,去繁化简,这就是后面的SpringBoot框架。

 

SpringBoot

SpringBoot 可以看作是对 Spring 框架的扩展,可以快速搭建独立的 Spring 应用程序。

SpringBoot能够简化配置文件,快速构建web应用,内置tomcat,无需打包部署,直接运行。

spring和springboot的区别(4大区别详解)-mikechen

而且,Spring Boot 对 Spring 家族和一些第三方库提供一系列自动化配置的 Starter,来使得开发快速搭建一个基于 Spring 的应用程序。

 

spring和springboot的区别

以下是Spring和Spring Boot之间的主要区别:

1.配置方式不同

在Spring中,需要手动配置大量的组件,如数据源、事务管理器、Web服务器等等。

而Spring Boot通过自动配置方式,可以根据classpath中的依赖关系自动配置很多组件,简化了应用程序的配置过程。

 

2.依赖管理不同

Spring Boot采用了“约定优于配置”的思想,提供了一系列的starter依赖。

这些依赖包含了所需的依赖和默认配置,使得开发者可以快速开始一个新的项目,而Spring则需要手动管理依赖。

 

3.对于微服务的支持不同

Spring Boot的设计初衷是支持微服务的快速开发,因此它提供了很多针对微服务的功能。

比如:Spring Cloud 就是基于 Spring Boot 框架,它将市面上较好的微服务框架集成进来,包括:EurekaZuulHystrixRibbon等组件。

之外还包括:服务注册与发现、负载均衡、断路器等等,而Spring则需要通过额外的组件来实现这些功能。

 

4.项目构建

Spring Boot可以使用内嵌的Tomcat或Jetty服务器,无需部署到外部服务器,可以更加方便地构建独立的可执行JAR包或WAR包,而Spring则需要部署到外部服务器。

以上就是spring和springboot的区别详解,请多Spring请查看:Spring教程(史上最全图文详解)

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法