Spring IoC⾃动装载(Autowire)
IoC 负责创建对象,DI 负责完成对象的依赖注⼊,通过配置 property 标签的 ref 属性来完成。
同时 Spring 提供了另外⼀种更加简便的依赖注⼊⽅式:⾃动装载,不需要⼿动配置property,IoC容器会⾃
动选择bean完成注⼊。
⾃动装载有两种⽅式:
- byName:通过属性名⾃动装载
- byType:通过属性的数据类型⾃动装载
1.byName
<bean id="cars" class="com.southwind.entity.Car">
<property name="id" value="1"></property>
<property name="name" value="宝⻢"></property>
</bean>
<bean id="person" class="com.southwind.entity.Person" autowire="byName">
<property name="id"value="11"></property>
<property name="name" value="张三"></property>
</bean>
2.byType
<bean id="car" class="com.southwind.entity.Car">
<property name="id"value="2"></property>
<property name="name"value="奔驰"></property>
</bean>
<bean id="person" class="com.southwind.entity.Person" autowire="byType">
<property name="id" value="11"></property>
<property name="name" value="张三"></property>
</bean>
byType需要注意,如果同时存在两个及以上的符合条件的bean时,自动装载会抛出异常