spring自动装配与spring_bean之间的关系(二)

关于自动装配:

XML配置里的Bean自动装配
1 SpringIOC容器可以自动装配Bean,需要做的仅仅是在<bean>的autowire属性里指定自动装备的模式
2 byType(根据类型自动装配):若IOC容器中有多个与目标Bean类型一直的bean,在这种情况下,Spring将无法判定哪个bean最合适该属性,所以不能执行自动装配
3 byName(根据名称自动装配):必须将目标bean的名称和属性名设置的完全相同
4 constructor(通过构造器自动装配):当bean中存在多个构造器时,此种自动装配方式将会很复杂,不推荐使用
XML配置里的bean自动装配的缺点
在bean配置文件里设置autowire属性进行自动装配将会装配bean的所有属性,然而,若只希望装配个别属性时,autowire属性就不够灵活了
autowire属性要么根据类型自动装配,要么根据名称自动装配,不能两者兼而有之
一般情况下,在实际的项目中很少使用自动装配功能,因为和自动装配功能所带来的好处比起来,明确清晰的配置文档有说服力些


bean之间的关系 继承与依赖
Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父bean的bean称为子bean
子bean从父bean中继承配置,包括bean的属性配置
子bean也可以覆盖从父bean继承过来的配置
父bean可以作为配置模板,也可以作为bean实例,若只想把父bean作为模板,可以设置<bean>的abstract属性为true,这样spring将不会实例化这个bean
并不是<bean>元素里的所有属性都会被继承,比如:autowire,abstract等
也可以忽略父bean的class属性,让子bean指定自己的类,而共享相同的属性配置,但此时abstract必须设为true

依赖bean配置
Spring允许用户通过depends-on属性设定bean前置依赖的bean,前置依赖的bean会在本bean实例化之前创建好
如果前置依赖于多个bean,则可以通过逗号,空格或的方式配置bean的名称


猜你喜欢

转载自blog.csdn.net/youjiangtengwan1/article/details/54020724