// 只要容器一加载配置文件,就立刻实例化配置文件中的所有bean对应的类
public class User implements Serializable {
private Integer id;
private String name;
public User() {
System.out.println("User被实例化了");
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}
ApplicationContext ctx = new ClassPathXmlApplicationContext("com/xaeduask/c_ioc/applicationContext.xml")
User user = (User) ctx.getBean("u");
以前,我们想使用某个类的实例(产品), 需要自己实例化!
比如:
User user = new User();
现在有了spring ioc容器,我们只需要向spring ioc容器
伸手要一个User类的实例即可,我们不在实例化User了,实例化
User的工作交给spring ioc容器了。
所谓控制反转:
以前是在程序中自己实例化对象的,现在程序中不在实例化了!
实例化的过程交给了spring ioc容器,由外部ioc容器
来实例化对象!
这个把在程序内容实例化对象,转移给了容器来实例化的过程就叫控制反转。