spring4-2-bean配置-3-自动装配
Spring IOC 容器可以自动装配 Bean. 需要做的仅仅是在 <bean> 的 autowire 属性里指定自动装配的模式
byType(根据类型自动装配): 若 IOC 容器中有多个与目标 Bean 类型一致的 Bean. 在这种情况下, Spring 将无法判定哪个 Bean 最合适该属性, 所以不能执行自动装配.
byName(根据名称自动装配): 必须将目标 Bean 的名称和属性名设置的完全相同.
constructor(通过构造器自动装配): 当 Bean 中存在多个构造器时, 此种自动装配方式将会很复杂. 不推荐使用
bean的手动装配:
bean的自动装配:
1. 通过名称自动装配-byName,当前bean的setter风格的属性名称要和装配bean的id相同,才能自动装配.
也就是说,如果person中 car的setter方法 必须是setCar,而不能是setCar1.否则,要把 bean car的id改为car1才行.
2. 通过类的类型装配-byType,当前bean的类型和装配bean的类型匹配.
注意: 若IOC容器中有一个以上的类型匹配的bean,则会抛出异常.
自动装配的缺点
1. 在 Bean 配置文件里设置 autowire 属性进行自动装配将会装配 Bean 的所有属性. 然而, 若只希望装配个别属性时, autowire 属性就不够灵活了.
2. autowire 属性要么根据类型自动装配, 要么根据名称自动装配, 不能两者兼而有之.
3. 一般情况下,在实际的项目中很少使用自动装配功能,因为和自动装配功能所带来的好处比起来,明确清晰的配置文档更有说服力一些