Spring全家桶包括SpringMVC、SpringBoot、Spring Cloud等解决方案,有人亲切的称之为:Spring 全家桶@mikechen
Spring框架
Spring框架中包含的一系列子框架、模块和工具,包括:
1.Spring Core
Spring Core是Spring框架的核心模块,它提供了Spring IOC(控制反转)和DI(依赖注入)功能,用于管理对象、依赖注入等。
2.Spring AOP
Spring AOP是面向切面编程模块,它提供了AOP(面向切面编程)功能,用于在运行时修改程序行为。
Spring AOP基于Java动态代理和字节码增强实现,可以将通用的横切关注点,比如:日志、事务管理等。
3.Spring JDBC
Spring JDBC是用于简化JDBC编程的模块,提供了JDBC模板和数据源等。
JDBC模板封装了JDBC操作的常用逻辑,如连接管理、异常处理、预编译等,可以减少代码量并提高代码的可读性和可维护性。
4.Spring ORM
Spring ORM是用于简化ORM编程的模块,提供了对Hibernate、JPA等ORM框架的支持。
Spring ORM封装了ORM框架的常用逻辑,如事务管理、异常处理、查询缓存等,可以简化开发者的ORM编程,并提高代码的可读性和可维护性。
5.Spring Web
Spring Web是用于Web应用程序开发的模块,包括:Spring MVC、WebSocket、REST等。
6.Spring Test
Spring Test是用于测试Spring应用程序的模块,包括JUnit、Mockito等。
Spring Test提供了各种测试工具和框架,可以进行单元测试、集成测试、性能测试等,帮助开发者保证代码的质量和稳定性。
7.Spring Security
Spring Security是用于安全管理的模块,提供了认证、授权等功能,Spring Security可以保护应用程序免受各种安全威胁,
SpringMVC
SpringMVC是基于MVC(模型-视图-控制器)模式的Web框架,用于处理HTTP请求、渲染响应、验证数据等。
SpringMVC五大组件,如下图所示:
1.前端控制器 DispatcherServlet:DispatcherServlet本质上是一个Servlet,相当于一个中转站,所有的访问都会走到这个Servlet中。
2.处理器映射器 HandlerMapping:HandlerMapping本质上就是一段映射关系。
3.处理器适配器 HandlerAdapter:本质上是一个适配器,可以根据要求找到对应的Handler来运行。
4.视图解析器(ViewResolver):前端控制器调用处理器适配完成后得到model和view,将view信息传给视图解析器得到真正的view。
5.视图渲染(View):实现类支持不同的View类型(jsp、freemarker、pdf…)。
SpringBoot
SpringBoot是Spring全家桶中的一员,它是一个用于简化Spring应用程序开发的框架,提供了自动配置、快速开发、依赖管理等功能。
与传统的Spring框架相比,SpringBoot可以减少繁琐的配置和部署,提高开发效率和可维护性。
SpringBoot的主要特点如下:
1.自动配置
SpringBoot可以根据类路径下的依赖和配置来自动配置应用程序。
2.起步依赖
SpringBoot提供了一系列起步依赖,包括常用的Web框架、数据库、消息队列等,可以快速构建一个可用的应用程序。
3.嵌入式服务器
SpringBoot集成了常用的嵌入式服务器,如Tomcat、Jetty等,可以简化部署和运行应用程序的步骤。
4.快速开发
SpringBoot提供了诸多工具和插件,如代码生成器、运行时调试、Actuator等,可以提高开发效率和代码质量。
SpringBoot、Spring MVC和Spring有什么区别?
1)Spring
Spring最重要的特征是依赖注入。所有Spring Modules不是依赖注入就是IOC控制反转,当我们恰当的使用DI或者是IOC的时候,可以开发松耦合应用。
2)Spring MVC
Spring MVC提供了一种分离式的方法来开发Web应用。通过运用像DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。
3)SpringBoot
Spring和Spring MVC的问题在于需要配置大量的参数,SpringBoot通过一个自动配置和启动的项来解决这个问题。
SpringCloud
Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,它将市面上较好的微服务框架集成进来,包括:Eureka、Zuul、Hystrix、Ribbon等组件。
Spring Cloud技术体系,如下:
更多SpringCloud微服务,请查看:Spring Cloud教程(史上最全图文详解)
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》