spring框架参考手册翻译——第三部分核心技术6.1springioc容器和bean的介绍

     2022-04-26     163

关键词:

第三部分 核心技术

  这部分参考文档涵盖的这些技术是Spring Framework绝对重要的。

  其中最重要的要数Spring框架的控制反转(IoC)容器。深入剖析Spring框架IoC容器之后,紧接着要介绍的是Spring面向切面编程(AOP)技术。Spring框架拥有自己的AOP框架,从概念上很容易理解,并且成功地解决了AOP在Java企业级编程中80%的痛点需求。

  还提供了Spring与AspectJ(目前在功能上最丰富,在Java企业领域最成熟的AOP实现)的集成。

  第六章,IoC容器
  第七章,资源
  第八章,验证、数据绑定和类型转换
  第九章,Spring表达式语言(SpEL)
  第十章,Spring面向切面编程
  第十一章,Spring AOP APIs

6. IoC容器

6.1 Spring IoC容器和bean的介绍

  本章涵盖了Spring框架控制反转的实现原理。IoC也被称为依赖注入(DI)。它是通过对象定义它们的依赖关系的过程,也就是说,它们使用的其他对象,在被构造或者从工厂方法返回之后,只能通过构造参数、工厂方法参数或者属性设置到对象实例上,然后容器在创建Bean的时候注入这些依赖。这相对于Bean本身通过使用类的直接构造或者诸如服务定位器模式之类的机制来控制其依赖关系的实例化和定位来说,这个过程基本上是反向的,因此把它叫做控制反转(IoC)。
  org.springframework.beans和org.springframework.context包是实现Spring框架IoC容器的基础。BeanFactory接口提供了一种能够管理任何类型对象的高级配置机制。BeanFactory接口提供一种先进的,能够管理任何类型的对象的配置机制。ApplicationContext是BeanFactory的子接口。它更容易集成Spring的AOP特性、消息资源处理(用于国际化)、事件发布、以及特定的应用层上下文,例如,用于web应用程序的WebApplicationContext。
  简而言之,BeanFactory提供了配置框架和基本功能,并且ApplicationContext添加了更多的企业级功能。ApplicationContext是BeanFactory的完整超集,在本章中,描述Spring的IoC容器时候会被专门用到。有关使用BeanFactory而不是ApplicationContext的更多信息,请参见第6.16节“BeanFactory”。
  在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为Bean。Bean是一个由Spring IoC容器实例化,组装和管理的对象。否则的话,Bean只不过是应用程序中众多对象中的一个。Bean及其它们之间的依赖关系反映在容器使用的配置元数据中。

 

 

 

 

 

 

 

 

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.6.3其他aware接口

...接口除了上面讨论的ApplicationContextAware和BeanNameAware之外,Spring还提供了一系列Aware接口,允许bean向容器表明它们需要确定的基础依赖。其中最重要的Aware接口总结如下-作为一般规则,名称很好地说明了依赖类型:表6.4Aware接口名... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.4.5自动装配

6.4.5 自动装配Spring容器可以在协作bean之间自动建立关系。你可以允许Spring通过检查ApplicationContext的上下文,自动为你的bean解析协作者(其他bean)。自动装配具有以下优点:自动装配可以显著减轻指定属性或构造参数的需求... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.3bean概述

6.3Bean概述  SpringIoC容器管理一个或多个bean。这些bean是使用你提供给容器的配置元数据去创建的,例如,以XML<bean/>定义的形式。  在容器内部,这些bean的定义以BeanDefinition对象呈现出来,其中包含了(以及其他信息)... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.8.2使用beanfactorypostprocessor定制配置元数据

...stProcessor定制配置元数据我们将看到的下一个扩展点是org.springframework.beans.factory.config.BeanFactoryPostProcessor。这个接口的语义类似于BeanPostProcessor的语义,主要区别在于:BeanFactoryPostProcessor对bean配置元数据进行操作; 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.7bean的继承

6.7Bean的继承bean的定义可以包含许多配置信息,包括构造函数参数,属性值和容器特定的信息,例如初始化方法,静态工厂方法名称等。子bean的定义从父定义继承配置数据。子定义可以根据需要覆盖某些值或添加其他值。使用父... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.4.1依赖注入

6.4依赖典型的企业应用程序不包含单个对象(或Spring用法中的bean)。即使是最简单的应用程序也有一些对象可以协同工作,以呈现连贯的应用程序给最终用户看。下一节将介绍如何从定义多个独立的bean,到对象协作取得统一目... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.5.1单例(singleton)作用域

....1 单例(singleton)作用域定义为单例作用域的Bean,在Spring容器中只会存在一个实例,这个实例是共享的,所有匹配这个Bean的请求,Spring容器返回此共享的实例。换句话说,当您定义bean定义并将其作用域设置为singleton时,Spri... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.5.5自定义(custom)作用域

...原型作用域。创建自定义作用域要将自定义作用域集成到Spring容器中,需要实现org.springframework.beans.factory.config.Scope接口,本节将对此进行介绍。有关如何实现自己的作用域的方 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.4.2依赖注入和配置的细节

...bean(协作者)的引用,或者作为内联定义的值。为此,Spring的基于XML的配置元数据支持其<property/>和<constructor-arg/>元素中的子元素类型。直接值(基本类型、String等)<property/>元素的value属性将属 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.6自定义bean的特性6.6.1生命周期回调

...期回调要与容器的bean生命周期管理进行交互,可以实现Spring的InitializingBean和DisposableBean接口。对于前者,容器会调用afterPropertiesSet(),对于后者,容器会调用destroy()以允许bean在初始化和销毁bean时执行某些操作。注意:JSR-250@PostC... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.5bean的作用域

6.1 Bean的作用域当你创建一个Bean的定义,你就为这个Bean定义的类创建了一个配方。Bean的定义是一个配方的想法是重要的,因为这意味着,你可以通过这个配方创建许多对象实例。您不仅可以控制要插入到从特定bean定义创建... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.5.4请求(request)会话(session)和全局会话(globalsession)作用域

...ion)作用域请求,会话和全局会话作用域仅在您使用Web的SpringApplicationContext实现(例如XmlWebApplicationContext)时可用。如果将这些作用域与常规的SpringIoC容器(如ClassPathXmlApplicationContext)一起使用,则会出现Ille 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.4.3depends-on的使用

6.4.3 depends-on的使用如果bean是另一个bean的依赖项,常常意味着将一个bean设置为另一个bean的属性。典型地,你可以使用基于XML的配置元数据中的<ref/>元素来完成此操作。但是,有时bean之间的依赖关系不那么直接;例如,... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.5.3依赖于原型bean的单例bean

6.5.3依赖于原型Bean的单例Bean当您使用具有依赖于原型bean的单例bean时,请注意在实例化时解析依赖项。因此,如果将原型作用域的bean注入到单例作用域的bean中,则会实例化一个新的原型bean,然后将依赖注入到单例bean中。原型... 查看详情

参考手册目录__第三部分

参考手册目录__第一部分参考手册目录__第二部分参考手册目录__第三部分 第26章:扩展与嵌入Python 26.1扩展模块------482   26.1.1扩展模块原型------484  26.1.2命名扩展模块------486  26.1.3编译与打包扩展------486  26.1.... 查看详情

spring框架的核心技术(五)

...一个方面是实现给定的最佳方法要求,您如何决定在使用SpringAOP或AspectJ之间以及在方面语言(代码)样式,@AspectJ注释样式,还是SpringXML样式?这些决策受许多因素的影响,包括应用程序要求,开发工具,以及团队对AOP的熟悉程... 查看详情

spring技术核心概念纪要

一、背景springframework从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化。许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难。本文阐述了一些要点,并配合一些代码样例... 查看详情

spring框架有哪几部分组成

参考技术ASpring框架组成部分:<1>SpringCore:提供IOC和注入特性<2>SpringContent:提供一种框架风格方式访问对象<3>SpringAOP:将面向方面编程功能集成到了Spring框架,与AOP兼容<4>SpringDAP:提供了JDBC抽象层,消除了JDBC... 查看详情