Spring自动装配Bean的五种方式
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4、constructor – 在构造函数参数的byType方式
<!-- constructor – 在构造函数参数的byType方式。 --> <!-- 构造方法的参数 --> <bean id="person" class="org.spring.autowring.Person"> <constructor-arg> <ref bean="ability"></ref> </constructor-arg> </bean> <bean id="ability" class="org.spring.autowring.Ability"> <property name="skill" value="Java Programming"></property> </bean>
Spring自动装配 Bean的五种方式
在Spring中,支持 5 自动装配模式。
no – 缺省情况下,自动配置是通过“ref”属性手动设定,在项目中最常用 byName – 根据属性名称自动装配。如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它。 byType – 按数据类型自动装配。如果一个bean的数据类型是用其它bean属性的数据类型,兼容并自动装配它。 constructor – 在构造函数参数的byType方式。 autodetect – 如果找到默认的构造函数,使用“自动装配用构造”; 否则,使用“按类型自动装配”。 示例 1、Auto-Wiring "no"’这是默认的模式,需要通过 "ref" 属性来连接 bean。
return ility; }
public void setAbility(Ability ability) { this.ability = ability;
} @Override public String toString(){
return "Person=[ablity=[skill="+this.ability.getSkill()+"]]"; } }
package org.spring.autowring;
public class Person {
public Person(Ability ability){ super(); this.ability=ability;
} private Ability ability; public Ability getAbility() {
<!-- Auto-Wiring "byName" 按属性名称自动装配 --> <bean id="person" class="org.spring.autowring.Person" autowire="byName"/> <bean id="ability" class="org.spring.autowring.Ability"> <property name="skill" value="Java Programming"></property> </bean>
4 </bean>
5 <bean id="ability" class="org.spring.autowring.Ability">
6
<property name="skill" value="Java Programming"></property>
7 </bean>
2、Auto-Wiring "byName" 按属性名称自动装配
package org.spring.autowring;
public class Ability {
private String skill; public String getSkill() {
return skill; }
public void setSkill(String skill) { this.skill = skill;
} }
1 <!-- no – 缺省情况下,自动配置是通过“ref”属性手动设定 -->
2 <bean id="person" class="org.spring.autowring.Person">
3
<property name="ability" ref="ability"></property>
3、Auto-Wiring "byType" 按属性名称自动装配
<!-- Auto-Wiring "byType" 按属性名称自动装配 --> <bean id="person" class="org.spring.autowring.Person" autowire="byType"/> <bean id="ability" class="org.spring.autowring.Ability"> <property name="skill" value="Java Programming"></property> </bean>
<!-- constructor – 在构造函数参数的byType方式。 --> <!-- 构造方法的参数 --> <bean id="person" class="org.spring.autowring.Person"> <constructor-arg> <ref bean="ability"></ref> </constructor-arg> </bean> <bean id="ability" class="org.spring.autowring.Ability"> <property name="skill" value="Java Programming"></property> </bean>
Spring自动装配 Bean的五种方式
在Spring中,支持 5 自动装配模式。
no – 缺省情况下,自动配置是通过“ref”属性手动设定,在项目中最常用 byName – 根据属性名称自动装配。如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它。 byType – 按数据类型自动装配。如果一个bean的数据类型是用其它bean属性的数据类型,兼容并自动装配它。 constructor – 在构造函数参数的byType方式。 autodetect – 如果找到默认的构造函数,使用“自动装配用构造”; 否则,使用“按类型自动装配”。 示例 1、Auto-Wiring "no"’这是默认的模式,需要通过 "ref" 属性来连接 bean。
return ility; }
public void setAbility(Ability ability) { this.ability = ability;
} @Override public String toString(){
return "Person=[ablity=[skill="+this.ability.getSkill()+"]]"; } }
package org.spring.autowring;
public class Person {
public Person(Ability ability){ super(); this.ability=ability;
} private Ability ability; public Ability getAbility() {
<!-- Auto-Wiring "byName" 按属性名称自动装配 --> <bean id="person" class="org.spring.autowring.Person" autowire="byName"/> <bean id="ability" class="org.spring.autowring.Ability"> <property name="skill" value="Java Programming"></property> </bean>
4 </bean>
5 <bean id="ability" class="org.spring.autowring.Ability">
6
<property name="skill" value="Java Programming"></property>
7 </bean>
2、Auto-Wiring "byName" 按属性名称自动装配
package org.spring.autowring;
public class Ability {
private String skill; public String getSkill() {
return skill; }
public void setSkill(String skill) { this.skill = skill;
} }
1 <!-- no – 缺省情况下,自动配置是通过“ref”属性手动设定 -->
2 <bean id="person" class="org.spring.autowring.Person">
3
<property name="ability" ref="ability"></property>
3、Auto-Wiring "byType" 按属性名称自动装配
<!-- Auto-Wiring "byType" 按属性名称自动装配 --> <bean id="person" class="org.spring.autowring.Person" autowire="byType"/> <bean id="ability" class="org.spring.autowring.Ability"> <property name="skill" value="Java Programming"></property> </bean>