spring面试题之——控制反转(IOC)
什么是spring ioc容器?
spring框架的核心是spring容器。容器创建对象,将他们装配在一起,配置它们并管理它们的完整生命周期。spring容器使用依赖注入来管理组成应用程序的组件。容器通过读取配置的配置元数据来接受对象进行实例化,装配和组装的指令。该元数据可以通过XML、java注解或者是java代码提供。
什么是依赖注入?
在依赖注入中,您不必创建对象,但必须描述如何创建它们。您不是直接在代码中将组件和服务连接在一起,而是描述配置文件中哪些组件需要哪些服务。由IOC容器将他们装配在一起。
可以通过多少种方式完成依赖注入?
通常有三种:
1、构造器注入
2、setter方法注入
3、接口注入
在spring framework中,仅使用构造器注入二号setter注入。
区分构造器注入和setter注入
https://www.cnblogs.com/Jason-Xiang/p/5345342.html
spring中有多少种ioc容器?
BeanFactory:就像一个包含bean集合的工厂类。它会在客户端要求时实例化bean。
ApplicationContext:ApplicationContext接口扩展了BeanFactory接口。它在BeanFactory基础上提供了一些额外的功能。
区分BeanFactory和ApplicationContext
列举一些Ioc的好处
它将最小化应用程序中的代码量。
它将使应用程序易于测试,因为它不需要单元测试用例中任何单例或者JNDI查找机制。
它以最小的影响和最少的侵入机制促进松耦合。
它支持即时的实例化和延迟加载服务。
spring ioc的实现机制
spring中的Ioc的实现原理就是工厂模式和反射机制。
//简单示例
public interface Fruit {void eat();
}public class Apple implements Fruit {public void eat() {System.out.println("Apple");}
}public class Orange implements Fruit {public void eat() {System.out.println("Orange");}
}
public class Factory {public static Fruit getInstance(String ClassName) {Fruit f = null;try {f = (Fruit) Class.forName(ClassName).newInstance();} catch (Exception e) {e.printStackTrace();}return f;}
}
public class Client {public static void main(String[] a) {Fruit f = Factory.getInstance("...");if (f != null) {f.eat();}}
}
文章来自各大论坛和平台,并非本人原创,但是无奈找不到一个具体来源,故类别上写为原创。侵删。
spring面试题之——控制反转(IOC)相关推荐
- 浅析Spring——控制反转IoC
目录 1. IoC理论推导 2. 什么是IoC? 3. 引入DI 4. IoC容器 5. 注入对象的四种方法 1.基于接口 2.基于setter 3.基于构造函数 4.基于注解 6. 两种IoC实现方 ...
- 控制反转IOC与依赖注入DI
为什么80%的码农都做不了架构师?>>> 1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最 ...
- Spring依赖注入和控制反转
文章目录 1.依赖注入 1.1.依赖注入和控制反转的概念 1.2.依赖注入的实现方式 1.3.控制反转的具体实现 1.4.依赖注入的具体实现 1.5.依赖注入和控制反转总结 1.依赖注入 1.1.依赖 ...
- 控制反转 java_控制反转( Ioc)快速入门
2.1 什么是控制反转(IOC:Inverse of Control) IOC反转控制,实际上就是将对象的创建权交给了Spring,程序员无需自己手动实例化对象. 可以看出来工厂的作用就是用来解耦合的 ...
- 控制反转(IoC)与依赖注入(DI)详解
文章目录 什么是控制反转(IoC) 控制反转(IoC)有什么作用 控制反转(IoC)是怎么分类的 依赖注入 接口注入 Setter方法注入 构造器注入 依赖查找 上下文依赖查找(Contextuali ...
- 控制反转IOC、依赖注入DI的详细说明与举例
文章目录 引入 IOC介绍 IOC的实现 通过构造函数注入依赖 通过 setter 设值方法注入依赖 依赖注入容器 IOC优缺点 优点 缺点 阅读时忽略语言差异,参考了很多其他博主内容,参考博文在最后 ...
- 依赖倒置(DIP),控制反转(IoC)与依赖注入(DI)
DIP,IoC与DI概念解析 依赖倒置 DIP(Dependency Inversion Principle) DIP的两大原则: 1.高层模块不应该依赖于低层模块,二者都应该依赖于抽象. 2.抽象不 ...
- 控制反转(Ioc)和依赖注入(DI)
控制反转IOC, 全称 "Inversion of Control".依赖注入DI, 全称 "Dependency Injection". 面向的问题:软件开发 ...
- 前端解读控制反转(IOC)
前言 随着前端承担的职责越来越重,前端应用向着复杂化.规模化的方向发展.大型项目模块化是一种趋势,不可避免模块之间要相互依赖,此外还有很多第三方包.这样的话如何去管理这些繁杂的文件,是一个不可避免的话 ...
最新文章
- 10.1.5 布局优化利器之 Hierarchy Viewer
- bootstrap-datepicker default value
- 窗口分析函数_10_计算组总和的占比
- .Net Core in Docker极简入门(上篇)
- C语言程序care用法,词汇精选:care的用法和辨析
- 使用命名空间别名限定符 ::
- Caffe框架详细梳理
- 晚上睡觉的时候应该把wifi关掉吗?
- 现成的CA证书签发工具
- 大数据平台安全风险与建设
- 安装完kali应该做的基本配置
- NPOI Word 原有表格增加一行
- web文件上传思路(一句话muma)
- 选择任意你熟悉的编程语言开发一个C/S、B/S、B/A/S或基于移动设备的民航售票系统,实现基本功能
- Crate安装和配置
- [附源码]java毕业设计基于web旅游网站的设计与实现
- 案例学习-产品模块和快报模块
- 模拟信号超出频率范围
- 帝国cms如何安装php模板,[帝国CMS教程] 新版帝国CMS整站源码安装说明 数据恢复教程(图文教程)...
- Linux | 第一篇——常见指令汇总【超全、超详细讲解】