实体类Computer、MobilePhone、Student
public class Computer implements Serializable{
private String mainboard;//主板
private String hdd;//硬盘
private String ram;//内存
public String getMainboard() {
return mainboard;
}
public void setMainboard(String mainboard) {
this.mainboard = mainboard;
}
public String getHdd() {
return hdd;
}
public void setHdd(String hdd) {
this.hdd = hdd;
}
public String getRam() {
return ram;
}
public void setRam(String ram) {
this.ram = ram;
}
}
public class MobilePhone implements Serializable{
private String cpu;
private String ram;
public MobilePhone() {
}
public MobilePhone(String cpu, String ram) {
this.cpu = cpu;
this.ram = ram;
}
public String getCpu() {
return cpu;
}
public void setCpu(String cpu) {
this.cpu = cpu;
}
public String getRam() {
return ram;
}
public void setRam(String ram) {
this.ram = ram;
}
}
/*
* 自动装配:通过Spring自动装配机制,自动为一个
* bean装配其关联的bean
* 采用autowire="byType",即按照bean的类型进行自动装配
*/
public class Student implements Serializable{
private Computer computer;
private MobliePhone mobliePhone;
public Computer getComputer() {
return computer;
}
public void setComputer(Computer computer) {
this.computer = computer;
}
public MobliePhone getMobliePhone() {
return mobliePhone;
}
public void setMobliePhone(MobliePhone mobliePhone) {
this.mobliePhone = mobliePhone;
}
}
setter注入:
通过调用无参构造器或无参static工厂方法实例化bean后,调用该bean的setter方法,为其注入参数
构造器注入:
通过调用带参数的构造器来实现的,容器在bean被实例化的时候,根据参数类型执行相应的构造器,构造器注入可以强制给bean注入某些参数,比setter注入更严格.
自动装配:
Spring容器可以自动装配(autowire)相互协作bean之间的关联关系,autowire可以针对单个bean进行配置,autowire的方便在于减少xml的注入配置;自动装配虽然让开发变得更快速,但是要花更多时间进行维护,有事甚至不知道哪一个bean会被自动注入到另一个bean中.