Java面试经常会问到spring和springboot的区别,下满我就来重点详解spring和springboot的区别@mikechen
Spring
Spring是一个开源的Java企业应用程序框架,用于构建基于Java的Web应用程序和服务。
Spring框架,包含:Spring IOC、Spring AOP等模块,如下图所示:
Spring框架至今已集成了20多个模块,这些模块分布在以下模块中:
- 核心容器,比如:Spring IOC等;
- 数据访问集成等;
- Web层;
- Spring AOP模块;
- 消息传输(Messaging);
- 测试(Test)模块等;
Spring框架的优点包括:简化开发、提高生产力、提高代码可重用性、易于测试、提供AOP和事务管理等。
但是,Spring 最大的弊端,需要大量的 XML 配置,不管项目整体大小,都需要大量的配置文件搭建架构。
所以,后面SpringBoot来简化Spring应用开发,约定大于配置,去繁化简,这就是后面的SpringBoot框架。
SpringBoot
SpringBoot 可以看作是对 Spring 框架的扩展,可以快速搭建独立的 Spring 应用程序。
SpringBoot能够简化配置文件,快速构建web应用,内置tomcat,无需打包部署,直接运行。
而且,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 框架,它将市面上较好的微服务框架集成进来,包括:Eureka、Zuul、Hystrix、Ribbon等组件。
之外还包括:服务注册与发现、负载均衡、断路器等等,而Spring则需要通过额外的组件来实现这些功能。
4.项目构建
Spring Boot可以使用内嵌的Tomcat或Jetty服务器,无需部署到外部服务器,可以更加方便地构建独立的可执行JAR包或WAR包,而Spring则需要部署到外部服务器。
以上就是spring和springboot的区别详解,请多Spring请查看:Spring教程(史上最全图文详解)
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》