在Spring,“通过自动检测自动装配”,“通过构造函数自动装配”是指选,如果默认构造函数(参数与任何数据类型),以其他方式使用“按类型自动装配”。
请参见Spring “通过自动检测自动装配”的一个例子。自动装配(对"panda" bean 的实现基地)的“kungfu” Bean 到 “panda”,通过构造函数或类型。
<bean id="panda" class="com.yiibai.common.Panda" autowire="autodetect" /> <bean id="kungfu" class="com.yiibai.common.KungFu" > <property name="name" value="Tai Ji" /> </bean>
1. AutoDetect – 按构造函数装配
如果默认的构造函数提供,自动检测将构造自动装配。
package com.yiibai.common; public class Panda { private KungFu kungfu; public Panda(KungFu kungfu) { System.out.println("autowiring by constructor"); this.kungfu = kungfu; } public KungFu getKungfu() { return kungfu; } public void setKungfu(KungFu kungfu) { System.out.println("autowiring by type"); this.kungfu = kungfu; } //... }
输出
autowiring by type Person [kungfu=Language [name=Tai Ji]]
2. AutoDetect – 按类型装配
如果没有找到默认的构造函数,自动检测将按类型选择装配。
package com.yiibai.common; public class Panda { private KungFu kungfu; public KungFu getKungfu() { return kungfu; } public void setKungfu(KungFu kungfu) { System.out.println("autowiring by type"); this.kungfu = kungfu; } //... }
输出
autowiring by type Person [kungfu=Language [name=Tai Ji]]