spring 学习小结3_自动装配

spring自动装配:


xml配置里的bean自动装配
spring IOC容器可以自动装配bean,需要做的仅是在bean的autowire属性里指定自动装配的形式。
1.byType(根据类型自动装配):
若IOC容器中有多个与目标bean类型一致的bean,在这种情况下,spring将无法判定哪个bean最适合该属性,所以不能执行自动装配。


2.byName(根据名称自动装配):
必须将目标bean的名称和属性名设置的完全相同。


3.constructor(通过构造器自动装配):
若bean中存在多个构造器,则此种方法比较复杂,不推荐使用。


示例:
<bean id = "address" class = "com.hl.spring.autowrite.Address"
p:city="Beijing" p:street="huilongguan">
</bean>

<bean id = "address2" class = "com.hl.spring.autowrite.Address"
p:city="Beijing" p:street="huilongguan">
</bean>

<bean id = "car" class = "com.hl.spring.autowrite.Car"
p:brand="Audi" p:price="3000000">
</bean>

<!-- 手动装配
<bean id = "person" class = "com.hl.spring.autowrite.Person"
p:address-ref="address" p:car-ref="car" p:name="Tom">
</bean>
-->

<!--  可以使用autowire 属性指定自动装配的方式 -->
<!-- 
byName根据bean的名称和当前bean的setter风格的属性名进行自动装配,若有匹配的则进行自动装配,若没有匹配的则不装配



<bean id = "person" class = "com.hl.spring.autowrite.Person"
p:name="Tom" autowire = "byName">
</bean>
-->

<!-- 
byType 根据bean的类型和当前bean的属性的类型进行自动装配。若IOC容器中有一个以上的类型匹配的bean,则抛异常。
-->
<bean id = "person" class = "com.hl.spring.autowrite.Person"
p:name="Tom" autowire = "byType">
</bean>


自动装配的缺点:
1.在bean配置文件中设置autowire属性进行自动装配将会装配bean的所有引用属性。然而,若只希望装配个别属性时,autowire属性就不够灵活


了。
2.autowire属性要么根据类型自动装配,要么根据名称自动装配,不能两者兼而有之。
3。一般情况下,在实际项目中很少使用自动装配功能,因为明确清晰的配置文档更好。但在整合框架的时候会使用它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值