玩转Spring框架教程03之Spring IOC实现原理
欢迎进群交流(QQ群:655019021)
一、IOC原理讲解
Ioc—Inversion of Control,“控制反转”是一种设计思想,是Spring核心之一。Ioc将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
传统方式管理对象:
资源的创建权由App控制
容器方式管理对象:
不再是App直接控制资源对象的创建权利,需要资源对象找Spring IOC获得。Spirng IOC接管资源对象的创建权;
IOC的发展过程
1.1直接创建对象方式
缺点:
直接创建对象的方式导致UserTest和UserService方法耦合度太高,不利于扩展和维护;
解决方案:
工厂模式,调用工厂类创建对象实现解耦。
调用工厂类获取对象
1.2工厂模式改造
工厂模式不足:
*创建对象比较单一
*需要创建其它类型对象需要频繁修改工厂类
*维护性和扩展性差
工厂模式不足解决:
为了解决工厂模式的不足,Spring的核心使用了IOC思想,在工厂模式的基础上增加了XML配置文件、Dom4j、反射技术
IOC = 工厂模式 + XML + Dom4j + 反射