一:自动装配说明
- 自动装配是使用spring满足bean依赖的一种方法 。
- spring会在应用上下文中为某个bean寻找其依赖的bean。
Spring中bean有三种装配机制:
在xml中显式配置;
在java中显式配置;
隐式的bean发现机制和自动装配。
Spring的自动装配需要从两个操作实现:
组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean;
自动装配(autowiring):spring自动满足bean之间的依赖(IoC/DI);
不推荐使用自动装配xml配置 , 而使用注解
二:xml方式自动装配(不推荐)
实体类:
public class Books {
public void show(){
System.out.println("读四大名著");
}
}
public class Hobbies {
public void show(){
System.out.println("培养兴趣爱好");
}
}
public class Pepole {
private String name;
private Books books;
private Hobbies hobbies;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Books getBooks() {
return books;
}
public void setBooks(Books books) {
this.books = books;
}
public Hobbies getHobbies() {
return hobbies;
}
public void setHobbies(Hobbies hobbies) {
this.hobbies = hobbies;
}
@Override
public String toString() {
return "Pepole{" +
"name='" + name + '\'' +
", books=" + books +
", hobbies=" + hobbies +
'}';
}
}
配置文件:
- autowire byName (按名称自动装配)
byName: 会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid(通过id匹配)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www