【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 进行销毁。

三、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值