【Spring面试题】
一、Spring、Spring MVC、SpringBoot之间的关系?
- Spring 包含了多个功能模块,其中最重要的是Spring-Core(主要提供Ioc依赖注入功能的支持)模块,Spring中的其它模块(比如:Spring MVC)的功能实现基本都需要依赖于该模块。
- Spring MVC是Spring中的一个很重要的模块,主要赋予Spring快速构建MVC架构的Web程序的能力。
MVC是指 模型(Model)、视图(View)、控制器(Controller) 的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码; - SpringBoot只是简化了配置,如果你需要构建MVC架构的Web程序,你好是需要使用Spring MVC作为MVC框架,只是说SpringBoot帮你简化了SpringMVC的很多配置,真正做到开箱即用;
二、介绍一下Spring框架中Bean的生命周期?
Bean的生命周期概括起来就是4个阶段:
- 实例化(Instantiation)
- 属性赋值(Populate)
- 初始化(Initialization)
- 销毁(Destruction)
每个阶段详细介绍:
- 实例化:第一步,实例化一个Bean对象;
- 属性赋值:第二步,给Bean设置相关的属性和依赖
- 初始化:
1)初始化之前执行:
第三步,检查Aware的相关接口并设置相关依赖
第四步:BeanPostProcessor前置处理
2)初始化操作:
第五步:是否实现InitializingBean接口
第六步:是否配置自定义的init-method
3)初始化之后执行:
第七步:BeanPostProcessor后置处理- 销毁:
1)先注册销毁的相关接口
第八步:注册Destruction相关回调接口
2)进行销毁操作
第九步:是否实现了DisposableBean接口
第十步:是否配置自定义的destory-method
- 在doCreateBean( )方法中能看到一次执行了这四个阶段:
- 初始化方法的第3~7步,进入到initializeBean( ) 方法里看一下具体的过程:
- 在 invokInitMethods() 方法中会检查 InitializingBean 接口和 init-method 方法,销毁的过程也与其类似:
总结下如何记忆 Spring Bean 的生命周期:
-
首先是实例化、属性赋值、初始化、销毁这 4 个大阶段;
-
再是初始化的具体操作,有 Aware 接口的依赖注入、BeanPostProcessor 在初始化前后的处理以及 InitializingBean 和 init-method 的初始化操作;
-
销毁的具体操作,有注册相关销毁回调接口,最后通过DisposableBean 和 destory-method 进行销毁。
三、
原文地址:https://blog.csdn.net/weixin_62678196/article/details/142717524
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!