DI/IOC:
依赖注入——DI:
在运行期,由外部容器动态地将依赖对象注入到组件中;
依赖注入的方式: constructor-arg:通过构造函数注入。 property:通过setxx方法注入。
控制反转————IOC:
由Spring 容器 创建依赖对象及维护,控制权的转移就是控制反转。
依赖关系:一个biz类在处理业务逻辑时要操作数据库,使用一个DAO类的方法操作数据库。
1.主动接受demo:
public class DemoDAO {
public void save(){
}
public class DemoBIZ {
private DemoDAO demoDAO=new DemoDAO();
public void save(){
demoDAO.save();
}
}
DemoBIZ依赖于DemoDao类,主动获得--用时实例化。
-------------------------------------------------------------------------------
2.被动接收demo:
public interface DemoDAO {
public void save();
}
public class DemoDAOImpl implements DemoDAO {
public void save(){
}
}
public class DemoBIZ {
private DemoDAO demoDAO;
public DemoDAO getDemoDAO() {
return goodsDAO;
}
public void setDemoDAO(DemoDAO demoDAO) {
this.demoDAO = demoDAO;
}
public void save() {
System.out.println("DemoBIZ.save()");
demoDAO.save();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DemoDAO demoDAO = new DemoDAOImpl();
DemoBIZ demoBIZ = new DemoBIZ();
demoBIZ.setDemoDAO(demoDAO);
//依赖注入
demoBIZ.save();
}
DemoBIZ 依赖于一个 DemoDAO。但现在DemoDAO是一个接口。
DemoDAO接口下面有一个DemoDAOImpl实现类。
现在DemoBIZ使用哪个DemoDAO自己不知道。在运行时由外部容器创建一个传参。
现在DemoBIZ只能被动接收一个DemoDAO。