spring-framework-reference(5.1.1.RELEASE)中文版——Core部分

最近在学习Spring框架,在学习的同时,借助有道翻译,整理翻译了部分文档,由于尚在学习当中,所以该篇文章将会定时更新,目标在一个月左右时间翻译完全部版本。

虽然大部分内容为翻译,但是其中可能会添加一些我对Spring的理解,最近也在计划建立一个wiki版本,希望同样在学习的你,可以参与进来,我们共同完成该版本文档的翻译与评注。感兴趣的,可以私信联系,方便共同学习。

以下是正式内容,标题未翻译,为了方便与官方文档相对应。

为了防止篇幅过大,该篇主要翻译Core核心部分.

Introduction to the Spring IoC Container and Beans

本章介绍了基于控制反转(IoC)原理的Spring框架实现。IoC也称为依赖注入(dependency injection, DI)。在这个过程中,对象只通过构造函数参数、工厂方法的参数或对象实例在构造或从工厂方法返回后设置的属性来定义它们的依赖关系(也就是说,它们使用的其他对象)。然后容器在创建bean时注入这些依赖项。这个过程从根本上说是bean本身的翻转(因此称为控制反转),它通过使用类或服务定位器模式等机制的直接构造来控制依赖项的实例化或位置。

这里补充IoC的理解框图

传统应用程序示意图

spring-framework-reference(5.1.1.RELEASE)中文版——Core部分

从这里我们就可以看出,为什么叫做翻转。因为本来客户端负责创建用户类,而现在只需要获取用户类。

org.spring.framework.beans和org.springframework.context是Spring Framework IoC容器的基础。BeanFactory接口提供了一种高级配置机制,能够管理任何类型的对象。ApplicationContext是BeanFactory的子接口。它增加了:

更容易与Spring的AOP特性集成

消息资源处理

事件发布

应用程序层特定的context,例如用于web应用程序的WebApplicationContext。

简而言之,BeanFactory提供了配置框架和基本功能,而ApplicationContext添加了更多企业特定的功能。ApplicationContext是BeanFactory的一个完整超集,在本章中专门用于描述Spring的IoC容器。有关使用BeanFactory而不是ApplicationContext的更多信息,请参阅BeanFactory。

在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是由Spring IoC容器实例化、组装和以其他方式管理的对象。另外,bean只是应用程序中的众多对象之一。bean及其之间的依赖关系反映在容器使用的配置元数据中。

Container Overview

org.springframework.context.ApplicationContext接口代表Spring IoC容器,并负责实例化、配置和组装bean。容器通过读取配置元数据获得关于实例化、配置和组装对象的指令。配置元数据用XML、Java注释或Java代码表示。它允许您表达组成应用程序的对象以及这些对象之间的丰富相互依赖关系。

Spring提供了ApplicationContext接口的几个实现。在独立应用程序中,通常创建ClassPathXmlApplicationContext或FileSystemXmlApplicationContext实例。虽然XML一直是定义配置元数据的传统格式,但您可以通过提供少量XML配置来声明支持这些额外的元数据格式,指示容器使用Java注释或代码作为元数据格式。

在大多数应用程序场景中,不需要显式用户代码来实例化Spring IoC容器的一个或多个实例。例如,在web应用程序场景中,应用程序的web.xml文件中的8行(或大约8行)样板web描述符XML通常就足够了.

如果您使用Spring工具套件(一个eclipse驱动的开发环境),您可以很容易地通过单击鼠标或击键创建这个样板配置。

下图显示了Spring工作原理的高级视图。您的应用程序类与配置元数据相结合,这样在创建和初始化ApplicationContext之后,您就有了一个完整配置的可执行系统或应用程序。

The Spring IoC container

Configuration Metadata

如上面的图表所示,Spring IoC容器使用了一种配置元数据的形式。这个配置元数据表示您作为应用程序开发人员如何告诉Spring容器实例化、配置和组装应用程序中的对象。

配置元数据传统上以简单直观的XML格式提供,这是本章的主要内容,用于传递Spring IoC容器的关键概念和特性。

基于xml的元数据不是配置元数据的唯一允许形式。Spring IoC容器本身与实际编写配置元数据的格式完全分离。现在,许多开发人员为他们的Spring应用程序选择基于java的配置。

有关使用Spring容器的其他元数据形式的信息,请参阅:

Annotation-based configuration: Spring 2.5引入了对基于注释的配置元数据的支持。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdjpw.html