1、IOC
Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。即创建对象不采用new的方式创建对象,IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对象的创建。IOC 解决了繁琐的对象生命周期的操作,解耦了我们的代码。
2、IOC和DI
DI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。du
模拟IOC的实现
模拟IOC的核心在于通过xml文件用反射的方式对其进行赋值,大致步骤有:通过读取xml文件的配置信息,通过反射创建javabean类实例,通过方法对其进行赋值,将完成的实例放入容器内。
创建一个接口
实现这个接口,用Map创建一个容器
通过构造器读取XML,并向容器注册一个javabean类