自学内容网 自学内容网

【Spring面试题】

一、Spring、Spring MVC、SpringBoot之间的关系?

  1. Spring 包含了多个功能模块,其中最重要的是Spring-Core(主要提供Ioc依赖注入功能的支持)模块,Spring中的其它模块(比如:Spring MVC)的功能实现基本都需要依赖于该模块。
  2. Spring MVC是Spring中的一个很重要的模块,主要赋予Spring快速构建MVC架构的Web程序的能力。
    MVC是指 模型(Model)、视图(View)、控制器(Controller) 的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码;
  3. SpringBoot只是简化了配置,如果你需要构建MVC架构的Web程序,你好是需要使用Spring MVC作为MVC框架,只是说SpringBoot帮你简化了SpringMVC的很多配置,真正做到开箱即用;

二、介绍一下Spring框架中Bean的生命周期?

Bean的生命周期概括起来就是4个阶段

  1. 实例化(Instantiation)
  2. 属性赋值(Populate)
  3. 初始化(Initialization)
  4. 销毁(Destruction)

 每个阶段详细介绍:

  1. 实例化:第一步,实例化一个Bean对象;
  2. 属性赋值:第二步,给Bean设置相关的属性和依赖
  3. 初始化:
    1)初始化之前执行:
    第三步,检查Aware的相关接口并设置相关依赖
    第四步:BeanPostProcessor前置处理
    2)初始化操作:
    第五步:是否实现InitializingBean接口
    第六步:是否配置自定义的init-method
    3)初始化之后执行:
    第七步:BeanPostProcessor后置处理
  4. 销毁:
    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)!