- 手动装配:以value或ref的方式来明确指定属性值都是手动装配
- 自动装配:根据bean标签的autowire属性指定的装配规则,不需要明确指定,Spring自动把匹配的属性值注入bean中
自动装配的规则,即autowire的属性值有:
- no或default:不自动装配
- byName:根据bean的属性名自动装配,以当前bean的属性名作为id从IOC容器中寻找以实现装配。找到则装配,找不到则不装配
- byType:根据bean属性类型自动装配,找到一个则装配,找到多个则报错,找不到则不装配
在前面几篇博客中,我们已经知道了如何使用元素来声明 bean 和通过使用 XML 配置文件中的和元素来注入 。Spring 容器可以在不使用和 元素的情况下自动装配相互协作的 bean 之间的关系,这有助于减少编写一个大的基于 Spring 的应用程序的 XML 配置的数量。
2.1自动装配模式
可以使用元素的 autowire 属性为一个 bean 定义指定自动装配模式。
可以使用 byType 或者 constructor 自动装配模式来连接数组和其他类型的集合。
2.2 自动装配的局限性
- 在bean标签添加属性:Autowire就可以了
- - byName
- byType
- 基于XML的方式,只能装配非字面量的值
- 由属性名称指定指定自动装配
- 由属性类型指定指定自动装配
- 比如:在配置文件中,有一个bean定义设置为自动装配byType,并且包含SpellChecker类型的spellChecker属性
- 那么Spring就会查找类型为SpellChecker的bean,并且用它来设置这个属性
- 我们仍然可以使用property标签来连接其他属性
- 基于XML自动装配,底层使用set注入
- 不建议使用byName,byType
- 建议使用注解的方式自动装配
- - 对象中属性和容器中的beanid进行匹配,如果属性名和beanid一致,则自动装配
- - 对象中的属性类型与容器中bean的class进行匹配,如果唯一匹配则自动装配 - 匹配0个:未装配 - 匹配多个:会报错
本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://zengyihong.blog.csdn.net/article/details/125500362