Spring 提供了某些规则,可以对 bean 进行自动装配。<bean>
的 autowire
属性可以指定自动装配的策略。
策略 | 说明 |
---|---|
byName | 根据名称进行匹配。 |
byType | 根据类型进行匹配。假设 Book 有一个 Author 类型的属性,如果容器中找到 Author 类型的 Bean 时,就会自动把它装配给 Book 的 Author 属性。 |
constructor | 也是根据类型进行匹配,只不过指的是构造函数的情况。假设 Book 有一个构造函数,它有一个 Author 类型的入参;如果容器中找到 Author 类型的 Bean 时,就会自动装配;如果没有找到,则抛出异常。 |
autodetect | 如果 Bean 提供了默认的构造函数,则采用 byType 方式;如果没有,则采用 constructor 方式。 |
<beans>
元素存在 default-autowire 属性,可以设置全局性的自动装配类型;如果为 no,则表示不启用自动装配;还有这些值:byName、byType、constructor 与 autodetect。
在实践中很少在 XML 中开启自动装配功能,而基于注解的配置方式默认采用的是 byType 自动装配策略。