Spring自动装配-‘byName’
’byName’
这种模式由属性名称指定自动装配。Spring 容器看作 beans,在 XML 配置文件中 beans 的 auto-wire 属性设置为 byName。然后,它尝试将它的属性与配置文件中定义为相同名称的 beans 进行匹配和连接。如果找到匹配项,它将注入这些 beans,否则,它将抛出异常。
实例:
- 在eclipse中新建一个名为autowire的Java工程
- 带入spring所需要的包
- 在src下新建一个名为autoTest01的包,在包下新建MainTest.java,Tstudent.java,和Tteacher.java三个class文件
- 在src下创建Beans.xml文件
下面是MainTest.java的内容:
package autowireTest01;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
Tstudent student = (Tstudent)context.getBean("Tstudent01");
System.out.println(student);
}
}
下面是Tstudent.java的内容:
package autowireTest01;
public class Tstudent {
private String name;
private Tteacher teacher;
public void setName(String name) {
this.name = name;
}
public void setTeacher(Tteacher teacher) {
this.teacher = teacher;
}
public String toString() {
return "my name is "+name+",and my teacher's name is "+teacher.getName();
}
}
下面是Tteacher.java的内容:
package autowireTest01;
public class Tteacher {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
下面是Beans.xml的内容:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="Tstudent01" class="autowireTest01.Tstudent" autowire="byName">
<property name="name" value="zs"></property>
</bean>
<bean id="teacher" class="autowireTest01.Tteacher">
<property name="name" value="ls"></property>
</bean>
</beans>
输出结果如下: