Spring-Framework-ioc-2

1前言

2基本原理

3IOC容器

4Bean

在Spring-Framework技术框架中,Bean即Java实例化对象,IOC容器负责管理这些用于业务应用处理的bean。Bean的定义与创建过程也是IOC容器的定义与创建过程,其步骤包括定义bean对应的配置元数据、根据配置元数据执行bean的实例化,而类BeanDefinition是用于定义bean的,IOC容器根据类BeanDefinition的定义实例化每个bean,其定义包括的基本信息如下所示: 

  • 指定bean的具体实现类,使用Java类的全限定名称(类包 & 类)

  • 指定bean的行为属性,例如,作用域、生命周期、回调函数

  • 指定bean的依赖项,与其他bean的引用关系

  • 指定bean的常量属性,例如,数据源连接池的最大连接数

4.1Bean定义

在Spring-Framework技术框架中,类BeanDefinition是bean的基本定义,与bean的配置元数据一一对应,其定义的属性类型(在后续章节中详细描述)如下所示:

定义bean对应的Java类,IOC容器负责实例化,是IOC容器装载的基本单元

命名

定义bean在IOC容器中的唯一标识,每个bean对应一个或者多个唯一标识,例如,ID、名称、别名

作用域

定义bean的创建方式、定义bean的作用范围、定义bean的生命周期

构造函数参数

定义bean的引用与依赖,使用构造函数方式创建bean,以构造函数参数的方式传入

属性

定义bean的引用与依赖,以setter方法参数的方式传入

自动绑定依赖

定义bean的引用与依赖,根据依赖项的名称、类型自动绑定依赖

懒初始化模式

定义实例化bean的创建方式,是一个种节约资源的设计模式,在需要使用bean的时候,再执行bean的实例化

初始化方法

定义bean所有的依赖项设置完成之后,执行初始化的方法

IOC容器被销毁的回调方法

定义当IOC容器被销毁删除之后,回调bean的方法

4.2Bean命名

用户可以使用属性id或者属性name定义bean的名称,其命名的规则与通常的编程规范保持一致,例如,首字母小写结合驼峰写法,多个名称可以使用逗号或者分号分隔。用户也可以对bean定义多个别名,每个别名应用与不同的子系统、子模块,这种定义方式的好处是有利于改善代码的可读性、不容易混淆名称、不会发生命名冲突,如下所示:

如上图所示,其中myApp-dataSource对应的名称是共享数据源,subsystemA-dataSource、subsystemB-dataSource对应不同的别名,是对共享数据源的引用,因此,可以在A、B两个子系统中分别使用对应的别名访问共享数据源,也可以直接使用共享数据源的名称。

4.3Bean实例化

Bean实例化是创建一个Java类实例对象,主要是使用bean的构造函数、使用工厂静态方法、使用工厂实例方法。

bean的构造函数,创建一个简单无参数、无依赖的bean实例:

使用工厂静态方法,创建一个简单的服务类实例:

使用工厂实例方法,创建多个服务类实例:

(未完待续)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangys2006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值