自动装配Bean属性
一共有四种自动装配类型(需要在Bean配置里添加autowire属性来指定用哪种类型)
- byName-把与Bean的属性具有相同名字或ID的其他Bean自动装配到Bean的对应属性中。如果没有跟属性的名字相匹配的Bean,则该属性不进行装配。--实际上对比的是Bean ID。
- byType-把与Bean的属性具有相同类型的其他Bean自动装配到Bean的对应属性。如果没有跟属性的类型相匹配的Bean,则该属性不被装配。局限性:如果Spring找到多个Bean,它们的类型都与需要自动装配的属性的类型相匹配,这个时候SPring不会猜测哪一个更适合,而是抛出异常。不过提供了如下参数来指定用哪个Bean来注入。<bean>元素的primary属性。如果该值为true,那么该Bean将比其他候选Bean优先被选择。默认都是true。如果希望排除某些Bean作为候选者,那么可以设置它们的autowire-candidate属性为false.则它们都会被忽略作为候选Bean.
- constructor-把与Bean的构造器入参具有相同类型的其他Bean自动装配到Bean构造器的对应入参中。
- autodetect-首先尝试使用constructor进行自动装配,如果失败,则再尝试使用byType进行自动装配。
时间: 2024-10-28 03:45:44