Spring框架

春季框架是最受欢迎的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 Framework – Google Trends

什么是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。对这些元素的描述如下:

  1. SpEL模块提供了一个强大的表达式语言,用于在执行过程中操作对象。
  2. Context是基于Beans和Core构建的,允许您访问在设置中定义的任何对象。Context模块的关键元素是ApplicationContext接口。
  3. Core模块提供了框架的关键部分,包括IoC和DI属性。
  4. Bean模块负责创建和管理Spring Beans – 是应用程序上下文的结构单元。

Spring框架Web

Spring框架的Web层包括Web、Web-MVC、Web-Socket、Web-Portlet等。

  1. Web模块提供了下载文件、创建Web应用程序、REST Web服务等功能。
  2. Web-MVC包含了用于Web应用程序的Spring MVC实现。
  3. Web-Socket支持客户端和服务器之间的通信,在Web应用程序中使用Web-Sockets。
  4. Web-Portlet提供了在portlet环境中使用MVC实现的功能。

Spring框架数据访问

数据访问/集成容器包括JDBC、ORM、OXM、JMS和Transactions模块。

  1. JDBC提供了一个JDBC的抽象层,并消除了开发人员手动注册与连接数据库相关的单调代码的需要。
  2. Spring ORM提供了与流行的ORM(对象关系映射)框架集成的功能,如Hibernate、JDO,它们是JPA的实现。
  3. OXM模块负责连接对象/XML – XMLBeans、JAXB等。
  4. JMS(Java消息服务)模块负责创建、发送和接收消息。
  5. Transactions支持实现特定方法和POJO类的事务管理。

其他模块

Spring还包括许多其他重要模块,如AOP、Aspects、Instrumentation、Messaging和Test。

  1. AOP实现面向方面的编程,并允许使用AOP功能的全部功能。
  2. Aspects模块提供与AspectJ的集成,AspectJ也是一个强大的AOP框架。
  3. Instrumentation负责支持用于服务器应用程序的类仪器和类加载器。
  4. Messaging模块提供STOMP支持。
  5. 最后,Test模块提供使用TestNG或JUnit框架进行测试。

Spring 5功能

Spring 5对Spring 4进行了大规模更新。Spring 5的一些重要特性包括:Spring 5

  1. 支持Java 8、Java 9、Java EE 7、Java EE 8、Servlet 4.0、Bean Validation 2.0和JPA 2.2。很高兴看到Spring正在努力跟上主要技术的最新版本。
  2. 通过新模块 – spring-jcl 改进了日志记录。
  3. 文件操作使用NIO 2流,因此性能得到了改善。
  4. 支持将Reactor 3.1 Flux和Mono以及RxJava 1.3和2.1作为Spring MVC控制器方法的返回值。
  5. 支持Kotlin、Project Lombok、JSON Binding API作为Jackson和GSON的替代方案。
  6. Spring WebFlux – Spring变得更具响应性。
  7. 支持JUnit 5
  8. 通过Kotlin实现的函数式编程支持。

您可以在我们的GitHub存储库中查看Spring项目。

参考资料:Spring官方网站Spring参考文档

Source:
https://www.digitalocean.com/community/tutorials/spring-framework