说说 Spring 的自动装配策略

Spring 提供了某些规则,可以对 bean 进行自动装配。autowire 属性可以指定自动装配的策略。

策略 说明
byName 根据名称进行匹配。
byType 根据类型进行匹配。假设 Book 有一个 Author 类型的属性,如果容器中找到 Author 类型的 Bean 时,就会自动把它装配给 Book 的 Author 属性。
constructor 也是根据类型进行匹配,只不过指的是构造函数的情况。假设 Book 有一个构造函数,它有一个 Author 类型的入参;如果容器中找到 Author 类型的 Bean 时,就会自动装配;如果没有找到,则抛出异常。
autodetect 如果 Bean 提供了默认的构造函数,则采用 byType 方式;如果没有,则采用 constructor 方式。

元素存在 default-autowire 属性,可以设置全局性的自动装配类型;如果为 no,则表示不启用自动装配;还有这些值:byName、byType、constructor 与 autodetect。


在实践中很少在 XML 中开启自动装配功能,而基于注解的配置方式默认采用的是 byType 自动装配策略。

你可能感兴趣的:(说说 Spring 的自动装配策略)