不得不说, IOC和DI 在写代码时经常用到。还有个就是在面试时 ,面试官老喜欢问 IOC 和DI是什么的问题,都快被问吐了,

可是,仍然会让许多人说的支支吾吾。

  为什么?

 

第一,因为这个知识实在是太基础了,忽略了操作的叫法,即便开发时老是在使用这个知识点,但是并不知道一直写的这个原来是叫这个啊!
第二,不知道底层原理,谁不知道IOC是控制反转 ,DI是依赖注入?那么面试官来了句为什么?怎么用?那岂不是就凉凉了?        

 

2.定义:

IOC ,英文全称是Inverse of Control,控制反转。
DI,英文全称是Dependency Injection ,依赖注入。

 

3.总结

(1)IOC控制反转 ,就是将依赖类的控制权从容器类中移除,将其移到容器类外部去,使用容器类之前,需要从外部将依赖类注入进来。
(2)那么注入依赖类的过程就是DI,意为依赖注入。
(3)能够将依赖类注入容器类的方式共有4种,但是DI依赖注入只占其中的3种,
  分别是构造函数注入【也称构造器注入】、setter注入【也称属性注入】、接口注入【具有侵入性,不建议使用】。
  还有一种是使用javabean容器注入。
(4)而初始化Javabean的容器方式有两种,分别是
  低级容器 XMLBeanFactory【实例对象类型是BeanFactory】、   高级容器 ClassPathXmlApplicationContext【实例对象类型是ApplicationContext】   分别将依赖类和容器类使用XML文件注册javabean,然后在容器类的
<bean>标签内配置注入依赖类的信息,
  可以直接使用属性 p:   格式是p:【属性名】-ref
=“【依赖类的<bean>标签id】”   也可以使用<bean>里面使用<property>标签配置

 

 4.不使用IOC

这里演示不使用IOC的写法

目录结构

深入谈谈 Java IOC 和 DI

 

 依赖类

package com.example.javabaisc.ioc;

/**
 * 依赖类
 */
public class MDependency {
    public String food(){
        return "苹果";
    }
}
View Code

相关文章: