什么是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)相关推荐

  1. 浅析Spring——控制反转IoC

    目录 1. IoC理论推导 2. 什么是IoC? 3. 引入DI 4. IoC容器 5. 注入对象的四种方法 1.基于接口 2.基于setter 3.基于构造函数 4.基于注解 6. 两种IoC实现方 ...

  2. 控制反转IOC与依赖注入DI

    为什么80%的码农都做不了架构师?>>>    1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最 ...

  3. Spring依赖注入和控制反转

    文章目录 1.依赖注入 1.1.依赖注入和控制反转的概念 1.2.依赖注入的实现方式 1.3.控制反转的具体实现 1.4.依赖注入的具体实现 1.5.依赖注入和控制反转总结 1.依赖注入 1.1.依赖 ...

  4. 控制反转 java_控制反转( Ioc)快速入门

    2.1 什么是控制反转(IOC:Inverse of Control) IOC反转控制,实际上就是将对象的创建权交给了Spring,程序员无需自己手动实例化对象. 可以看出来工厂的作用就是用来解耦合的 ...

  5. 控制反转(IoC)与依赖注入(DI)详解

    文章目录 什么是控制反转(IoC) 控制反转(IoC)有什么作用 控制反转(IoC)是怎么分类的 依赖注入 接口注入 Setter方法注入 构造器注入 依赖查找 上下文依赖查找(Contextuali ...

  6. 控制反转IOC、依赖注入DI的详细说明与举例

    文章目录 引入 IOC介绍 IOC的实现 通过构造函数注入依赖 通过 setter 设值方法注入依赖 依赖注入容器 IOC优缺点 优点 缺点 阅读时忽略语言差异,参考了很多其他博主内容,参考博文在最后 ...

  7. 依赖倒置(DIP),控制反转(IoC)与依赖注入(DI)

    DIP,IoC与DI概念解析 依赖倒置 DIP(Dependency Inversion Principle) DIP的两大原则: 1.高层模块不应该依赖于低层模块,二者都应该依赖于抽象. 2.抽象不 ...

  8. 控制反转(Ioc)和依赖注入(DI)

    控制反转IOC, 全称 "Inversion of Control".依赖注入DI, 全称 "Dependency Injection". 面向的问题:软件开发 ...

  9. 前端解读控制反转(IOC)

    前言 随着前端承担的职责越来越重,前端应用向着复杂化.规模化的方向发展.大型项目模块化是一种趋势,不可避免模块之间要相互依赖,此外还有很多第三方包.这样的话如何去管理这些繁杂的文件,是一个不可避免的话 ...

最新文章

  1. 10.1.5 布局优化利器之 Hierarchy Viewer
  2. bootstrap-datepicker default value
  3. 窗口分析函数_10_计算组总和的占比
  4. .Net Core in Docker极简入门(上篇)
  5. C语言程序care用法,词汇精选:care的用法和辨析
  6. 使用命名空间别名限定符 ::
  7. Caffe框架详细梳理
  8. 晚上睡觉的时候应该把wifi关掉吗?
  9. 现成的CA证书签发工具
  10. 大数据平台安全风险与建设
  11. 安装完kali应该做的基本配置
  12. NPOI Word 原有表格增加一行
  13. web文件上传思路(一句话muma)
  14. 选择任意你熟悉的编程语言开发一个C/S、B/S、B/A/S或基于移动设备的民航售票系统,实现基本功能
  15. Crate安装和配置
  16. [附源码]java毕业设计基于web旅游网站的设计与实现
  17. 案例学习-产品模块和快报模块
  18. 模拟信号超出频率范围
  19. 帝国cms如何安装php模板,[帝国CMS教程] 新版帝国CMS整站源码安装说明 数据恢复教程(图文教程)...
  20. Linux | 第一篇——常见指令汇总【超全、超详细讲解】

热门文章

  1. Java蓝桥杯 算法训练 复数归一化
  2. 全国青少年软件编程(Scratch)等级考试一级考试真题2020年12月——持续更新.....
  3. 偏移地址,偏移量,基址寻址
  4. 【聯強EMBA】「本能叛逆」與「理性叛逆」
  5. java基础入门《一》
  6. git软件代码提交详解
  7. HTML头部相关的标签
  8. UseCase中include和extend的区别
  9. uni-app在手机上打开背景图片不显示
  10. 电商系统中的SPU和SKU