当前位置: 首页 > 面试题库 >

请说明一下springIOC原理是什么?如果你要实现IOC需要怎么做?请简单描述一下实现步骤?

马泰
2023-03-14
本文向大家介绍请说明一下springIOC原理是什么?如果你要实现IOC需要怎么做?请简单描述一下实现步骤?相关面试题,主要包含被问及请说明一下springIOC原理是什么?如果你要实现IOC需要怎么做?请简单描述一下实现步骤?时的应答技巧和注意事项,需要的朋友参考一下

考察点:spring

参考回答:

①IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。

IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。那么DI是如何实现的呢? Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。

举个简单的例子,我们找女朋友常见的情况是,我们到处去看哪里有长得漂亮身材又好的女孩子,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。

②实现IOC的步骤

定义用来描述bean的配置的Java类

解析bean的配置,將bean的配置信息转换为上面的BeanDefinition对象保存在内存中,spring中采用HashMap进行对象存储,其中会用到一些xml解析技术

遍历存放BeanDefinition的HashMap对象,逐条取出BeanDefinition对象,获取bean的配置信息,利用Java的反射机制实例化对象,將实例化后的对象保存在另外一个Map中即可。

 类似资料:
  • 本文向大家介绍请简要说明一下IOC和AOP是什么?相关面试题,主要包含被问及请简要说明一下IOC和AOP是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:spring 参考回答: 依赖注入的三种方式:(1)接口注入(2)Construct注入(3)Setter注入 控制反转(IoC)与依赖注入(DI)是同一个概念,引入IOC的目的:(1)脱开、降低类之间的耦合;(2)倡导面向接口编程、实

  • 本文向大家介绍请问什么是IoC和DI?并且简要说明一下DI是如何实现的?相关面试题,主要包含被问及请问什么是IoC和DI?并且简要说明一下DI是如何实现的?时的应答技巧和注意事项,需要的朋友参考一下 考察点:控制反转 参考回答: IoC叫控制反转,是Inversion of Control的缩写,DI(Dependency Injection)叫依赖注入,是对IoC更简单的诠释。控制反转是把传统上

  • 本文向大家介绍请你说一下哈希表是做什么的?另外哈希表的实现原理也说一下相关面试题,主要包含被问及请你说一下哈希表是做什么的?另外哈希表的实现原理也说一下时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Hash表即散列表,其最突出的优点是查找和插入删除具有常数时间的复杂度 其实现原理是:把Key通过一个固定的算法函数即所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结

  • 本文向大家介绍请阐述一下,你为什么想要做产品经理?相关面试题,主要包含被问及请阐述一下,你为什么想要做产品经理?时的应答技巧和注意事项,需要的朋友参考一下 一、兴趣 因为自己很喜欢做产品相关的事情,也比较喜欢有逻辑性的东西,做产品能给我带来过程中的愉悦和做完的成就感 二、经验 因为我有产品相关的经验,我觉得自己能够胜任好这份工作 三、性格 我觉得我的性格也比较适合做产品,喜欢钻研,喜欢挑战,还喜欢

  • 本文向大家介绍请说明一下synchronized的可重入怎么实现。相关面试题,主要包含被问及请说明一下synchronized的可重入怎么实现。时的应答技巧和注意事项,需要的朋友参考一下 考察点:锁 每个锁关联一个线程持有者和一个计数器。当计数器为0时表示该锁没有被任何线程持有,那么任何线程都都可能获得该锁而调用相应方法。当一个线程请求成功后,JVM会记下持有锁的线程,并将计数器计为1。此时其他线

  • 本文向大家介绍请简单说明一下什么是迭代器?相关面试题,主要包含被问及请简单说明一下什么是迭代器?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA迭代器 Iterator提供了统一遍历操作集合元素的统一接口, Collection接口实现Iterable接口, 每个集合都通过实现Iterable接口中iterator()方法返回Iterator接口的实例, 然后对集合的元素进行迭代操作.