首页 > 编程知识 正文

spring深入面试题,spring ioc实现原理

时间:2023-05-04 12:29:26 阅读:47310 作者:3526

讨论主题Spring IOC的理解、原理和实现。 谈谈spring IOC的底层实现吧。 说明bean的声明周期。 4.Spring是如何解决循环依赖问题的? 5.Bean Factory和FactoryBean有什么区别? 6.Spring中使用的设计模式? 7.Spring的APP基础实现原理。 8.Spring事务是如何回滚的? 谈spring事务的传播。 解答技巧总:现在的问题回答了哪些具体点? 用1、2、3、4、5的方法详细获取与说明相关的知识点,如果有不明白的地方,直接无视。 强调一些技术名词(核心概念、接口、类、关键方法),避重就轻,不说做不到的,引导面试提问。 避免不重要。 谈Spring IOC的理解、原理和实现。 总控制翻转:理论思想是,原对象由用户控制,有spring的话,整个对象交给spring管理。

DI:依赖于注入,将相应属性的值注入具体对象中。

Spring在哪里设计为DI:

@AutowiredpopulateBean完成属性值注入容器:存储对象,采用映射结构进行存储,spring一般存在三级缓存。 singletonObject保留完整的bean对象。 bean的整个生命周期,从创建到使用和销毁的所有过程都由容器管理。

1 .一般谈IOC容器时,必须设计到容器制作过程。 提到beanFacroty,DefaultListableBeanFactory。 容器具有顶级接口beanFactory,不提供相应的子类实现。

在bean工厂中设置一些参数(BeanPostProcessor、Aware接口的子类)等属性。

2 .加载分析bean对象并准备要创建的bean对象的定义对象beandefinition(XML或注释的分析过程)。

3.beanFacctoryPostProcessor的处理,这里是扩展点、PlaceHolderConfigureSupport、configurationclasspostprocessor。

4.BeanPostProcessor的注册功能。 然后,它有助于在bean对象中完成具体的扩展。

5 .反射性地将BeanDefinition对象实例化为特定bean对象。

6.bean对象初始化过程(输入属性,调用aware子类的方法,调用BeanPostProcessor预处理方法,调用init-method方法,然后调用beanpostprood

7 .可以生成完整的bean对象,并直接从getBean方法中获取。

8 .销毁程序。

面试官,这是我对ioc的总体理解,包括详细的处理过程。 如果有什么问题的话,请告诉我。 (前提是你要结束整个过程)

一个问题能占用面试官多少时间? 一小时问20个问题能回答多少? 问题越多可能越露骨。 在询问面试官熟悉的地方时,请尽量延长时间。

老师,我没看过源代码。 虽然不太清楚具体的细节,但是spring中的所有bean都是反射生成的,并且包含许多扩展,例如最常用的BeanFactory扩展、bean扩展(占位符处理)等等。 我们的公司多用于这方面,除此之外,IOC中最核心的是填充具体的bean属性和生命周期。

面试时不要在简历背面画任何东西,请尊重自己的简历。

谈谈spring IOC的底层实现吧。 底层的实现

工作原理、过程数据、结构、过程设计、模式设计、思想以上不言而喻

是说你对他的理解和你知道的实现过程。

说不能反射工厂的设计模式,但重要的几种方法createBeanFactory、getBean、doGetBean、createBean、doCreateBean、 createbeaninstance (新实例(populatebeaninitializingbean1.首先通过createBeanFactoy实现bean工厂(DefaultListableBeanFactory ) )

2 .启动循环以创建对象。 容器中的bean缺省为单实例,因此请优先在getBean,doGetBean中从容器中查找。 如果找不到

3 .使用create bean,doCreateBean方法以反射方式创建对象。 一般使用无引用的构建方法(getDeclaredConstructor,newInstance )

4 .将对象的属性输入populateBean

5 .执行其他初始化操作(初始化bean )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。