1.School类
package top.wyyblog.DI5;
public class School {
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "School [name=" + name + "]";
}
}
2.Student类
package top.wyyblog.DI5;
public class Student {
private String name;
private int age;
private School school;
public Student() {
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSchool(School school) {
this.school = school;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", school=" + school + "]";
}
}
3.测试类
package top.wyyblog.DI5;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDemo {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("top/wyyblog/DI5/applicationContext.xml");
Student student = (Student) context.getBean("student");
System.out.println(student);
}
}
4.自动注入(applicationContext.xml配置文件)
(a). byName自动注入
<bean id="school" class="top.wyyblog.DI5.School">
<property name="name" value="极速学院"></property>
</bean>
<!-- autowire="byName"会从容器中查找与实体类的域属性同名的Bean 的id,
并将该Bean对象自动注入给该域属性 -->
<bean id="student" class="top.wyyblog.DI5.Student" autowire="byName">
<property name="name" value="李四"></property>
<property name="age" value="80"></property>
</bean>
(b). byType自动注入
<bean id="school2" class="top.wyyblog.DI6.School">
<property name="name" value="极速学院"></property>
</bean>
<!-- autowire="byType"会从容器中查找与实体类的域属性类型具有 is-a 关系的Bean,
并将该Bean对象自动注入给该域属性 -->
<bean id="student" class="top.wyyblog.DI6.Student" autowire="byType">
<property name="name" value="李四"></property>
<property name="age" value="80"></property>
</bean>