6. IoC的自动装载(autowire)

定义

Ioc DI(依赖注入)可以通过配置property的ref属性将bean进行依赖注入,同时Spring还提供了另外一种更加简便的方式:自动装载,不需要手动配置property,IoC容器会自动选择bean完成依赖注入。

自动装载有两种方式

byName:通过属性名完成自动装载。

<!-- 配置Car -->
<bean id="car" class="com.devlin.factory.StaticCarFactory" factory-method="getCar">
    <constructor-arg value="1"></constructor-arg>
</bean>

<!-- 配置Person -->
<bean id="person" class="com.devlin.entity.Person" autowire="byName">
    <property name="id" value="1"></property>
    <property name="name" value="张三"></property>
</bean>

byType:通过属性的数据类型完成自动装载。

<!-- 配置Car -->
<bean id="car2" class="com.devlin.factory.StaticCarFactory" factory-method="getCar">
    <constructor-arg value="1"></constructor-arg>
</bean>

<!-- 配置Person -->
<bean id="person" class="com.devlin.entity.Person" autowire="byType">
    <property name="id" value="1"></property>
    <property name="name" value="张三"></property>
</bean>

如果IoC容器同时存在多个数据类型相同的bean,会抛出异常。

Last updated

Was this helpful?