Spring In Action 学习笔记(二)

个人学习Spring In Action学习笔记系列 (二)

源码地址 https://github.com/spring-projects/spring-framework


U2 基本的Bean装配

Spring In Action 学习笔记(二)

在Spring中,组件无须自己负责与其他组件的关联,容器负责把协作组件的引用给予各个组件。例如,订单管理组件需要一个信用卡验证器,但是它没有必要创建信用卡验证器。

创建系统组件之间的协作关系的这个动作是DI的关键,通常被称之为装配

 

2.1 容纳你的Bean

容器可以创建组件,装配和配置组件,以及管理他们的整个生命周期(从new到finalize)

容器是Spring框架的核心,使用DI管理所有组成应用系统的组件。Spring提供了多种容器实现,并分为两类。Bean工厂是最简单的容器,提供了基础的依赖注入支持。应用上下文ApplicationContext建立在Bean工厂基础之上,提供了系统构架服务。

BeanFactory介绍

Bean工厂采用了工厂设计模式,这个类负责创建和分发Bean。Bean工厂还可以在实例化这些对象的时候,创建协作对象间的关联关系

Spring In Action 学习笔记(二)

ApplicationContext继承了BeanFactory,拥有了基本的IOC功能Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)Spring In Action 学习笔记(二)Spring In Action 学习笔记(二)

 

2.2 Bean的生命

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

Spring应用上下文的生命周期与Bean工厂只有一点不同,调用了setApplicationContext()方法

Spring In Action 学习笔记(二)

 

创建Bean

需要一些执行者,定义为Performer接口

Spring In Action 学习笔记(二)

声明一个简单的Bean,第一个参与这是Juggle

Spring In Action 学习笔记(二)

在Juggle类中定义了第一个参与者Duke,可以在XML中声明

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

通过构造函数注入

构造器函数注入是保证Bean在使用之前被完整配置的最安全方法,但是它不能配置复杂的内容

Spring In Action 学习笔记(二)

 

2.3 注入Bean的属性

通常Bean提供一对函数用来访问属性 setXXX() 和 getXXX(),通过Setter注入,利用setter方法的属性来配置属性值

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

2.3.1 注入简单的数值

Spring In Action 学习笔记(二)

2.3.2 使用其他的Bean

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

注入内部Bean

Spring In Action 学习笔记(二)

2.3.3 装配集合

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

2.4 自动装配

Spring In Action 学习笔记(二)

2.5 控制Bean创建

2.5.1 Bean范围化

Spring In Action 学习笔记(二)

Spring In Action 学习笔记(二)

2.5.2 利用工厂方法来创建Bean

静态工厂方法创建一个单例实例

Spring In Action 学习笔记(二)

2.5.3 初始化和销毁Bean

Spring In Action 学习笔记(二)