IOC 全称Intervention of control,控制反转,就是程序将创建对象的权力从程序代码传到框架中,由框架帮我们创建对象和分配对象。
在传统的开发中,有两种缺点:
一、资源浪费
public class AdminInfo {
private int id;
private String adminName; //账号 ,不能重复
private String password; //密码,在数据库中要加密存储
private String note; //备注
// ...get和set方法省略
}
// dao接口
Public interface AdminDao{
void add(AdminInfo admin);
}
public class AdminService {
// service
private AdminDao adminDao;
public void add(adminDao adminDao){
adminDao.add(student);
}
}
每次调用service方法的时候就需要创建一个dao对象,如果多次调用的话就会浪费资源。
二、代码耦合度高
传统开发中,dao层的实现类都是硬编码、目前我们有一个impl实现类,但是如果在之后 我们实现了另一个更为完善的impl2的实现类,我们就需要修改源码,重新发布、部署项目,而IOC就很好的解决了这两个问题。