静下心来的个人专栏
上一篇

Spring框架高级介绍

广告
选中文字可对指定文章内容进行评论啦,→和←可快速切换按钮,绿色背景文字可以点击查看评论额。
大纲

什么是Spring框架

这个问题的古老答案是,“Spring 是一个依赖注入框架”。实际上,它远不止于此。

Spring 是最流行的 Java 企业应用程序开发框架,它带有许多工具和库来解决 Java 世界中的几乎所有问题。无论是微服务还是简单的数据库驱动的企业应用程序,Spring 都有必要的工具来帮助您入门。目前很难解释 Spring技术栈中可用的所有功能和库,随着您的进步,您将逐渐了解它们。

您会遇到两个新关键字,Dependency 和 Dependency Injection,让我们一一了解。

什么是依赖注入?

依赖注入是一种使类的创建独立于其依赖关系的技术。这基本上是将对象使用与其创建解耦。我将用一个例子来解释这一点。

在下面的代码中,PDFReader 需要一个 FileProcessor 对象。 PDFReader 直接依赖于 FileProcessor 类,这是两个类之间的紧密耦合。

public class PDFReader {
  private FileProcessor fileProcessor;
  
  public PDFReader(){
    this.fileProcessor = new FileProcessor();
  }
}

我们可以将上面的类重写为松散耦合的类,如下面的代码,其中 FileProcessor 在构造函数中传递。这种实现代码的方式称为依赖注入。

public class PDFReader {
  private FileProcessor fileProcessor;
  public PDFReader(FileProcessor fileProcessor){
    this.fileProcessor = fileProcessor;
  }
}

大家能看出这两种实现方式的区别吗?

1、第一个实现中,FileProcessor的创建由PDFReader控制,它们之间形成了强烈的耦合。

2、第二个实现中,PDFReader没有控制FileProcessor的创建,而是通过构造器注入实现的,它们之间是松耦合的。

 

Spring框架的核心模块

Spring Framework 由几个模块组成,每个模块都包含单独的功能。根据项目需要,您可以使用必要的模块作为 Maven/Gradle 依赖项。

各种 Spring 模块可以组合在一起分为以下几类。

1、Spring 核心模块——IoC 容器、事件、资源、i18n、验证、数据绑定、类型转换、SpEL、AOP。

2、Spring 测试模块——模拟对象、TestContext 框架、Spring MVC 测试、WebTestClient。

3、数据访问模块——事务、DAO 支持、JDBC、O/R 映射、XML 编组。

4、Web Servlet 模块——Spring MVC、WebSocket、SockJS、STOMP 消息传递。

5、响应式 Web 模块 – Spring WebFlux、WebClient、WebSocket。

6、集成模块——远程处理、JMS、JCA、JMX、电子邮件、任务、调度、缓存。

版权声明:著作权归作者所有。