不得不说, 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的写法
目录结构
依赖类
package com.example.javabaisc.ioc; /** * 依赖类 */ public class MDependency { public String food(){ return "苹果"; } }