什么是IoC
控制反转,是一种技术思想,不是技术实现只不过spring在技术层次把这个做了非常好的实现
作用:Java开发领域对象的创建、管理问题
传统开发 :比如类A依赖于类B,需要在类中new 一个类B的对象
IoC开发:开发人员不需要去new 的方式创建对象,而是Ioc容器帮助开发人员实例化对象并且管理它的生命周期,
需要使用哪个对象,去找Ioc窗口要(获取)即可
丧失了一个创建、管理对象的权利
不用考虑对象的创建、管理等事情
为什么叫控制反转?
控制:对象的创建(实例,管理)的权利
反转:控制权交了给Ioc容器(Spring等框架)
ICO解决了什么问题
主要对象之间的耦合问题
没有Ioc
UserService 实现类UserServiceImpl
UserDao 实现类UserDaoImpl
在UserServiceImpl中要调用UserDao 的方法
UserDao userDao = new UserDaoImpl();
如果换了实现类,又要重要写一次
这样的方式
有Ioc
只需要
private UserDao userDao;
面像接口
IOC与DI的区别
DI:DESTINATION IMAGINATION 依赖注入
Ioc与Di描述的是同一个事情(对象实现化与依赖关系),只是角度不一样,
- Ioc:站对象角度,对象实例化与管理交给了Ioc容器
- DI:是站在容器的角度去看,容器会把对象1依赖的其它对象2,送到对象1中,(注入进去),比如A对象实例化时,需要一个B对象,容器会把B对象实例化后,注入到A对象中