IOC(控制反转)与DI(依赖注入)


IOC(控制反转)与DI(依赖注入)

IOC(控制反转)

  1. 之前在Servlet中,我们创建service对象 ,xxxService xxxService = new xxxServiceImpl();
    这句话如果出现在servlet中的某个方法内部,那么这个xxxService的作用域(生命周期)应该就是这个方法级别; 如果这句话出现在servlet的类中,也就是说xxxService是一个成员变量,那么这个xxxService的作用域(生命周期)应该就是这个servlet实例级别
  2. 之后我们在applicationContext.xml中定义了这个xxxService。然后通过解析XML,产生xxxService实例,存放在beanMap中,这个beanMap在一个BeanFactory中;因此,我们转移(改变)了之前的service实例、dao实例等等他们的生命周期。控制权从程序员转移到BeanFactory。这个现象我们称之为控制反转。

DI(依赖注入)

  1. 之前我们在控制层出现代码:FruitService fruitService = new FruitServiceImpl();
    那么,控制层和service层存在耦合。

  2. 之后,我们将代码修改成xxxService xxxService = null ;
    然后,在配置文件中配置:

    
         
    
    

    通过读取配置文件来进行赋值。