首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

自动安装之byName

2012-08-29 
自动装配之byName自动装配之byNamebyName:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全

自动装配之byName

自动装配之byName

byName:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。例如,在bean定义中将autowire设置为by name,而该bean包含master属性(同时提供setMaster(..)方法),Spring就会查找名为master的bean定义,并用它来装配给master属性。

下面通过示例来理解:

JavaBean代码:

//JavaBeanàPerson定义了一个name属性,和一个相应的set依赖注入方法

public class Person {

??? private String name;

??? public void setName(String name) {

?????? this.name = name;

??? }??

}

//JavaBeanàStudentServiceImpl继承了Person

public class StudentServiceImpl extends Person{

}

//JavaBeanàTeacherServiceImpl,定义一个studentSerciceImpl,和一个相应的set依赖注入方法和get方法。

public class TeacherServiceImpl {

??? private StudentServiceImpl studentServiceImpl;

??? public void setStudentServiceImpl(StudentServiceImpl studentServiceImpl) {

?????? this.studentServiceImpl = studentServiceImpl;

??? }

??? public StudentServiceImpl getStudentServiceImpl() {

?????? return studentServiceImpl;

??? }

}

byname.xml文件:

不用byName:

<bean id="person" class="cn.csdn.byname.Person">

?????? <property name="name">

?????????? <value>Well_Being</value>

?????? </property>

??? </bean>

??? <bean id="studentServiceImpl" class="cn.csdn.byname.StudentServiceImpl" scope="singleton" parent="person"/>

??? <bean id="teacherServiceImpl" class="cn.csdn.byname.TeacherServiceImpl" scope="singleton">

?????? <property name="studentServiceImpl" ref="studentServiceImpl"/>

??? </bean>

用byName:

<bean id="person" class="cn.csdn.byname.Person">

?????? <property name="name">

?????????? <value>Well_Being</value>

?????? </property>

??? </bean>

??? <bean id="studentServiceImpl" scope="singleton" parent="person"/>

??? <bean id="teacherServiceImpl" scope="singleton" autowire="byName"></bean>

?

黄色区域代表两者的区别:

热点排行