Spring 可以自动装配,只要设置需要自动装配的<bean>中的autowire 属性。
如: <bean id="bolink" class="com.spring.Bolink" autowire="autowire type" />
有四种自动装配类型:
byName
试图在容器中寻找和需要自动装配的属性名相同的bean(或ID)。如果没有找到相符的Bean,这个属性就没有被装配上。
byType
试图在容器中寻找一个与需要自动装配的属性类型相同的Bean。如果没有找到相符的Bean,会抛出
org.springframework.beans.factory.UnsatisfiedDependencyException.
constructor
试图在容器中查找与需要自动装配的Bean的构造函数参数一致的一个或多个Bean。如果存在不确定,抛出如上的异常。
autodetect
首先尝试使用constructor来自动装配,然后使用ByType方式。不确定性的处理一样抛出如上的异常。
Spring 的缺点: 在使用 byType和constructor自动装配时,如果容器找到二个以上符合属性类型或构造函数参数类型的Bean。Spring是无法
解决这个问题的。只会抛出如上的异常。
Spring 采用自动的缺点: