春季框架是最受欢迎的Java EE框架之一。在这篇文章中,我们将学习以下内容:
- Spring框架架构
- Spring的核心组件
- Spring框架下的各种项目
I looked at the Google Trends chart for Spring Framework, Servlet, JSP, and JSF. It’s clear that Spring is far ahead from all other Java EE technologies.

什么是Spring框架?
Spring是Java企业版中最受欢迎的框架之一。全球各地的开发人员使用Spring来开发可靠且高质量的应用程序。Spring框架是由Rod Johnson设计的。从那时起,Spring已经成为Java世界中EJB模型的替代技术。您可以使用Spring框架创建不同类型的应用程序。
Spring核心概念 – DI,IoC,AOP
- 要理解什么是Spring框架,就必须了解什么是依赖注入和控制反转。依赖注入也称为DI,是控制反转(IoC)的一种类型。
- 控制反转 – 这是面向对象编程的原则,程序中的对象不依赖于其他对象的具体实现,而是可能了解它们的抽象(接口)以进行后续交互。
- 依赖注入 – 是结构设计模式的一种组合,应用程序的每个功能都有一个条件独立的对象(服务),它可能需要使用通过接口已知的其他对象(依赖项)。 依赖项在服务创建时传递(实现)。这是我们在一个类中引入另一个类的情况。在实践中,DI通过将参数传递给构造函数或使用设置器来实现。实现这种方法的库也被称为IoC容器。
- 面向切面编程 – 一种编程范 paradigm,允许您区分应用程序中的横切(功能性)功能。这些跨越多个应用程序节点的功能被称为横切关注点,这些横切关注点与应用程序的即时业务逻辑分离。在面向对象编程中,关键单元是类,而在面向切面编程中,关键元素是切面。DI有助于将应用程序类分隔成单独的模块,而AOP有助于将横切关注点与其影响的对象分离。
Spring框架架构
Spring框架被划分为多个独立的模块,允许您在应用程序中选择使用哪些模块。下图展示了Spring框架架构中最重要的模块。 让我们逐个深入了解Spring生态系统的各个模块。
Spring框架核心组件
Spring的核心容器由四个模块组成:SpEL,Context,Core,Beans。对这些元素的描述如下:
- SpEL模块提供了一个强大的表达式语言,用于在执行过程中操作对象。
- Context是基于Beans和Core构建的,允许您访问在设置中定义的任何对象。Context模块的关键元素是ApplicationContext接口。
- Core模块提供了框架的关键部分,包括IoC和DI属性。
- Bean模块负责创建和管理Spring Beans – 是应用程序上下文的结构单元。
Spring框架Web
Spring框架的Web层包括Web、Web-MVC、Web-Socket、Web-Portlet等。
- Web模块提供了下载文件、创建Web应用程序、REST Web服务等功能。
- Web-MVC包含了用于Web应用程序的Spring MVC实现。
- Web-Socket支持客户端和服务器之间的通信,在Web应用程序中使用Web-Sockets。
- Web-Portlet提供了在portlet环境中使用MVC实现的功能。
Spring框架数据访问
数据访问/集成容器包括JDBC、ORM、OXM、JMS和Transactions模块。
- JDBC提供了一个JDBC的抽象层,并消除了开发人员手动注册与连接数据库相关的单调代码的需要。
- Spring ORM提供了与流行的ORM(对象关系映射)框架集成的功能,如Hibernate、JDO,它们是JPA的实现。
- OXM模块负责连接对象/XML – XMLBeans、JAXB等。
- JMS(Java消息服务)模块负责创建、发送和接收消息。
- Transactions支持实现特定方法和POJO类的事务管理。
其他模块
Spring还包括许多其他重要模块,如AOP、Aspects、Instrumentation、Messaging和Test。
- AOP实现面向方面的编程,并允许使用AOP功能的全部功能。
- Aspects模块提供与AspectJ的集成,AspectJ也是一个强大的AOP框架。
- Instrumentation负责支持用于服务器应用程序的类仪器和类加载器。
- Messaging模块提供STOMP支持。
- 最后,Test模块提供使用TestNG或JUnit框架进行测试。
Spring 5功能
Spring 5对Spring 4进行了大规模更新。Spring 5的一些重要特性包括:Spring 5
- 支持Java 8、Java 9、Java EE 7、Java EE 8、Servlet 4.0、Bean Validation 2.0和JPA 2.2。很高兴看到Spring正在努力跟上主要技术的最新版本。
- 通过新模块 – spring-jcl 改进了日志记录。
- 文件操作使用NIO 2流,因此性能得到了改善。
- 支持将Reactor 3.1 Flux和Mono以及RxJava 1.3和2.1作为Spring MVC控制器方法的返回值。
- 支持Kotlin、Project Lombok、JSON Binding API作为Jackson和GSON的替代方案。
- Spring WebFlux – Spring变得更具响应性。
- 支持JUnit 5
- 通过Kotlin实现的函数式编程支持。
您可以在我们的GitHub存储库中查看Spring项目。
参考资料:Spring官方网站,Spring参考文档。
Source:
https://www.digitalocean.com/community/tutorials/spring-framework