IOC容器之自动装配

今天主要是两种自动装配的方式。

第一种根据名称自动装配("byName",第二种是根据类名("byType"),下面说说这两种方式的异同。

首先大家看下图:

 

IOC容器之自动装配_第1张图片

 

相同点:

两种自动装载代码基本一样,仅需在1的位置设置不同的装载方式即可实现。

小结:实质上就是把所有类(包括属性...)配置到配置文件里即可,根本不用管类与类之间的关系(像上图2的位置所描述的那样)。

 

不同点:

原理肯定不同。

1.根据名称自动装载程序。如下图

IOC容器之自动装配_第2张图片

原理,当程序启动时,读取配置文件时,对象创建;然后根据IOC容器中name名称查找与属性完全一致的Bean,并将其与属性自动匹配,这样在类图中引用的类就能关联上了。

2.根据类型名自动装载程序。

原理:通过属性的类型去查找JavaBean依赖的对象并为其注入(如在Ban2中定义了Bean3,ioc根据此类型,去匹配对象。),对于id名称没有太多的要求。

3.查找方向相反

根据名称自动装配,是先找IOC中对象然后找对应的bean;而根据类型查找,则先从bean中属性类型开始去ioc里去查找对象。

总结:

使用了自动装载之后,配置信息减少了而且更简单了,从这个角度来看的话,还是常用自动装载比较好,至于选哪种根据情况而定吧。

你可能感兴趣的:(Spring)