您的位置:首页 > 编程语言 > Java开发

Spring的自动装配-autowire

2016-08-08 17:24 423 查看
Spring 的4种类型的自动装配
 ·byName——把与Bean的属性具有相同名字(或者ID)的其他Bean自动装配到Bean的对应属性中。如果没有跟属性的名字相匹配的Bean,则该属性不进行装配。
·byType——把与Bean的属性具有相同类型的其他Bean自动装配到Bean的对应属性中。如果没有跟属性的名字相匹配的Bean
,则该属性不被装配。
·constructor——把与Bean的构造器入参具有相同类型的其他Bean自动装配到Bean构造器的对应入参中。
·autodetect——首先尝试使用constructor进行自动装配。如果失败,再尝试使用byType进行自动装配。

How to?

一般的

不要对 p:感到奇怪,xmlns:p="http://www.springframework.org/schema/p"

相当于 <property name="" value=""/>

<bean id="kenny2" class="com.springinaction.springidol.Instrumentalist"
p:song="Jingle Bells"
p:instrument-ref="piano"
/>

byName注解

<bean id="kenny3" class="com.springinaction.springidol.Instrumentalist"
autowire="byName"
p:song="Jingle Bells"
/>

全局byname注解

 default-autowire="byName"

                > 

byType的注意事项:

自动注入与bean属性同类型的bean,如果有多个同时存在,就会出现问题,因为Spring 不会选出那个是优先的

更要命的是,虽然有一个字段 primary 
但是其默认值为 true
所以需将所有不用的设置为  primary="false"
只剩下一个

使用自动装配策略后,还是可以使用显示装配的,ref ="beanname" 这种
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring autowire