Java面试手册V2.0+突击V3.0知识点整理(二十九) 附封面图片

在这里插入图片描述


1. 什么是Spring框架?
  • Spring框架是由于软件开发的复杂性而创建的,Spring使用的是基本的JavaBean来完成之前只可能由EJB完成的事。从简单性、可测性和松耦合性角度而言,绝大部分Java应用都可以用Spring

2. Spring整体架构

在这里插入图片描述

大约分为20个模块


3. Spring可以做什么?

在这里插入图片描述


4. Spring优缺点?
  • 优点
    • Spring属于低侵入设计
    • IOC将对象之间的依赖关系交给Spring,降低组件之间的耦合,实现各个层之间的解耦,让我们更专注于业务逻辑
    • 提供面向切面编程
    • 对各种主流插件提供很好的集成支持
    • 对事务的支持很好,只要配置即可,无须手动控制
  • 缺点
    • 依赖反射,影响性能

5. Spring5几个新特性举例
  • Spring5整个框架基于Java8
  • 支持http/2
  • Spring Web MVC支持最新API
  • Spring WebFlux响应式编程
  • 支持Kotlin函数式编程

6. 什么是IOC?
  • IOC, 控制反转(Inversion of Control)的简称,负责创建对象、管理对象(通过依赖注入)、整合对象、配置对象以及管理这些对象的生命周期

7. 什么是依赖注入?
  • 依赖注入是Spring实现IOC的一种重要手段,将对象间的依赖关系的控制权从开发人员手里转移到容器

8. IOC注入的几种方式
  • 构造器注入
  • setter注入
  • 接口注入(几乎不用)

9. IOC优缺点
  • 优点
    • 组件之间的解耦,维护程序可维护性、灵活性
  • 缺点
    • 创建对象步骤复杂,有一定学习成本
    • 利用反射创建对象,效率上有损(对于代码灵活性和可维护性来看,Spring对于我们的开发带来了很大的便利,这点损耗影响不是很大)

10. bean的生命周期?
  1. Spring对bean进行实例化
  2. Spring将值和bean的引用注入到bean对应的属性中
  3. 如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBeanName()方法
  4. 如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将bean所在的应用引用传入进来
  5. 如果bean实现了ApplicationContextAware接口,Spring将调用setApplicationContext()方法,将bean所在的应用引用传入进来
  6. 如果bean实现了BeanPostProcessor接口,Spring将调用他们的post-ProcessBeforeInitalization()方法
  7. 如果bean实现了InitializingBean接口,Spring将调用他们的after-PropertiesSet()方法,类似的,如果bean使用了init-method声明了初始化方法,该方法也会被调用
  8. 如果bean实现了BeanPostProcessor接口,Spring将调用它们的post-ProcessAfterInitialization()方法
  9. 此时,bean已经准备就绪,可以被应用程序使用了,它们将一直驻留在应用上下文中,直到该应用被销毁
  10. 如果bean实现了DisposableBean接口,Spring将调用它的destory()接口方法,同样,如果bean使用destroy-method声明了销毁方法,该方法也会被调用

上一篇:Java面试手册V2.0+突击V3.0知识点整理(二十八) 附封面图片😍
下一篇:Java面试手册V2.0+突击V3.0知识点整理(三十) 附封面图片😍


如果觉得封面图片还行,请顺手点个赞😍
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SimpleZihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值