Spring的自动装配
自动装配就是指 Spring 容器在不使用 和 标签的情况下,可以自动装配(autowire)相互协作的 Bean 之间的关联关系,将一个 Bean 注入其他 Bean 的 Property 中。
使用自动装配需要配置 元素的 autowire 属性。autowire 属性有五个值,具体说明如下表所示:
名称
说明
no
默认值,表示不使用自动装配,Bean 依赖必须通过 ref 元素定义。
byName
根据 Property 的 name 自动装配,如果一个 Bean 的 name 和另一个 Bean 中的 Property 的 name 相同,则自动装配这个 Bean 到 Property 中。(表示按属性名称自动装配,XML 文件中 Bean 的 id 必须与类中的属性名称相同)
byType
根据 Property 的数据类型(Type)自动装配,如果一个 Bean 的数据类型兼容另一个 Bean 中 Property 的数据类型,则自动装配。(XML 文件中 Bean 的 id 与类中的属性名称可以不同,但必须只有一个类型的 Bean。)
constructor
类似于 byType,根据构造方法参数的数据类型,进行 byType 模式的自动装配。(类中构造函数的参数必须在配置文件中有相同的类型)
autodetect(3.0版本不支持)
如果 Bean 中有默认的构造方法,则用 constructor 模式,否则用 byType 模式。
自动装配的优缺点</