一 . 什么是Spring框架
官网地址: https://spring.io
Spring是Java企业版最受欢迎的框架之一。
全世界的开发人员都使用Spring开发可靠和高质量的应用程序。
Spring框架是由Rod Johnson设计的。从那时起,Spring已成为Java世界中EJB模型的替代技术。
您可以使用spring框架创建各种类型的应用程序。
EJB模型:
EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。
二 . 为什学习Spring框架
Spring是一个开源框架。
Spring使每个人都可以更快,更轻松和更安全地进行Java编程。Spring对速度,简单性和生产效率的关注使其成为世界上最受欢迎 Java框架。
-
Spring无处不在(Spring is everywhere)
Spring的灵活库受到全世界开发人员的信任,广泛应用于互联网、网联网各大技术场景。
-
Spring弹性灵活(Spring is flexible)
Spring 灵活而全面的扩展集和第三方库让开发人员可以构建几乎所有可以想象到的应用程序。
-
Spring生产效率高(Spring is productive)
- 使用springboot和springcloud可以快速搭建微服务架构的应用程序并部署到云端。
- 可以在几秒钟内使用Spring Initializr启动一个新的Spring项目
-
Spring就是快(Spring is fast)
- Spring项目也越来越多地支持响应式(无阻塞)编程模型,以提高效率
-
Spring非常安全(Spring is secure)
- Spring在快速负责地处理安全问题方面一直做得很好。
-
Spring是有支撑的((Spring is supportive)
- Spring的学习途径非常多,资料也非常齐全,可以通过文档教程、视频教程、社区等各种途径来学习Spring。
三 . Spring核心概念 – DI,IoC,AOP
如果不了解什么是依赖注入和控制反转,就不可能了解什么是Spring Framework 。依赖注入也称为DI,是控制反转(IoC)的类型之一。
控制反转(IOC):
IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。
依赖注入(DI):
依赖注入– 是结构设计模式的组合,其中对于应用程序的每个功能,只有一个,即条件独立的对象(服务),可能需要使用接口已知的其他对象(依赖项)。在创建服务时,依赖关系已传输(实现)到服务。在这种情况下,我们将一个类的元素引入另一个类。实际上,DI是通过将参数传递给构造函数或使用setter来实现的。实现此方法的库也称为IoC容器。
AOP(面向切面编程)
AOP一种编程规范,可以让您区分应用程序中跨越领域的功能。这些跨越多个应用程序的功能称为Pointcut(切点),并且这些跨领域注释与应用程序的直接业务逻辑分开。
在OOP中,关键的单元是类,而在AOP中,关键元素是Aspect(切面)。DI帮助将应用程序划分为单独的模块,而AOP帮助将Pointcut(切点)与他们所影响的对象分离。
四 . Spring框架架构
Spring Framework分为许多独立的模块,可让您决定在应用程序中使用哪些模块。下图说明了Spring Framework体系结构中最重要的模块。
五 . Spring Framework核心组件
Spring的Core容器包含四个模块:SpEl, Context, Core, Beans。
- SpEL 模块提供了一种强大的表达语言, 用于执行过程中操控对象。
- Context 是基于Beans和Core构建的,他允许您访问设置中定义的任何对象。上下文模块的关键元素是ApplicationContext接口。
- Core 模块提供了框架的关键部分,包括IOC和DI属性。
- Bean模块负责创建和管理Spring Bean,是应用程序上下文结构单元。
六 . Spring Framework Web
Spring框架Web层由 Web, Web-MVC, Web-Socket, Web-Portlet等组成。
- Web模块提供诸如 下载文件,创建Web应用程序,REST Web服务等功能。
- Web-MVC包含用于Web应用程序的Spring MVC实现。
- Web-Socket使用Web应用程序中的Web-Socket提供对客户端和服务器之间通信的支持。
- Web-Portlet通过Porlet环境提供MVC实现。
七 . Spring Framework Data Access
数据访问/集成容器由 JDBC, ORM, OXM, JMS和Transactions模块组成。
- JDBC提供了 JDBC抽象层,从而使得开发人员无需手动注册与连接数据库相关的单调代码。
- Spring ORM提供了与流行的ORM(例如Hibernate, JDO)的集成, ORM是JPA的实现。
- OXM模块负责连接对象/ XML - XMLBeans, JAXB等。
- JMS(java消息服务)模块负责创建,发送和接收消息。
- 事务支持对实现某些方法和POJO类的事务管理。
八. 其他模块
Spring还包括许多其他重要的模块, 例如AOP, Aspects, Instrumentation, Messaging, 和Test。
- AOP实现了面向切面的编程, 并允许使用AOP功能的整个库。
- Aspects模块提供与AspectJ的集成, 后者也是一个功能强大的AOP框架。
- Instrumentation负责支持在应用程序中使用的类工具和类加载器。
- Messaging模块则提供STOMO支持。
- Tets 测试模块使用TestNG或JUnit Framework提供测试。
九. Spring 5 Features
Spring 5 带来了大量更新,相比Spring 4的一些特点是:
- 支持Java 8,Java 9,Java EE 7,Java EE 8,Servlet 4.0,Bean Validation 2.0和JPA 2.2。
- 使用新模块– spring-jcl改进了日志记录。
- 文件操作使用NIO 流,因此提高了性能。
- 支持Reactor 3.1 Flux和Mono以及RxJava 1.3和2.1作为Spring MVC控制器方法的返回值。
- 支持Kotlin,Project Lombok,JSON Binding API,以替代Jackson和GSON。
- 支持JUnit 5。
- 通过Kotlin进行功能编程支持。
作者姓名 : Pankaj
作品名称 : Spring Framework
参考链接 : https://www.journaldev.com/16922/spring-framework.