Spring全家桶 面试题(更新中)

该文章为视频笔记整理。
视频来源:阿里大佬的Spring面试题100道

1.什么是Spring?

Spring是一个生态
Spring是一个轻量级的开源容器框架。
Spring是为了解决企业级应用的业务逻辑层和其他各层对象之间,对象和对象之间的耦合问题。
Spring是一个IOCAOP容器框架。
IOC:控制反转
AOP:面向切面编程
容器:包含并管理应用对象生命周期

2.Spring的有缺点是什么?

优点:

  1. 方便解构,简化开发。
    集中管理对象,对象和对象之间的耦合度降低,方便维护。

  2. AOP编程的支持
    在不改代码的情况下可以对代码进行增强,减少重复,提高效率,减少重复。

  3. 声明式事务支持
    提高效率

  4. 方便测试
    可以结合JUnit方便的进行程序测试。

  5. 方便集成各种优秀框架
    集成能力强,简单配置即可使用第三方框架。

  6. 集合了很多功能性代码

  7. JAVA源码是经典学习范例

学习Spring底层实现,反射、设计模式等,。提供了非常多的扩展接口,供外部扩展。

缺点:

  • 从应用层面来说没有缺点
  • 简化开发,如果想深入到底层去了解非常困难。(上层使用简单,底层复杂)
  • 经过多年迭代,代码量非常庞大,给更新带来困难。

3. Spring IOC 的作用

控制反转,将对象的管理从程序员新建转变为Spring的IOC去新建,集中管理对象,方便维护,特别适合单例。

4. Spring IOC 的优点

  1. 集中管理对象,方便维护。
  2. 解耦,默认创建对象为单例,支持懒汉式和饿汉式。

5. Spring IOC的实现机制是什么?

工厂+反射的机制实现的。

Spring IOC和DI(依赖注入)的区别:
DI是IOC中重要的一环。

6. 紧耦合和松耦合有什么区别

高耦合:类之间高度依赖。
松耦合:通过单一职责,关注点分离,依赖倒置原则来实现。

7. BeanFactory的作用

  • BeanFactory是Spring中非常核心的一个接口
  • 它是Bean的工厂,它的主要职责就是生产Bean;
  • 它实现了简单工厂的设计模式,通过getBean传入一个标识产生一个bean。

8. BeanDefinition的作用

它主要负责储存Bean的定义信息

Spring Bean 的加载过程:

  1. 代码中定义bean(通过XML,注解等),
  2. BeanDefinition中读取bean信息
  3. BeanFactory中创建bean。
  4. 在应用中使用。

9.BeanFactory和ApplicationContext有何区别?

ApplicationContext实现了BeanFactory,它不生产bean,而是通知FactoryBean生产bean。(类似于4s店和工厂的关系)

共同点:它也可以作为容器

ApplicationContext做的事情比beanFactory
更多:

  1. 会自动把我们配置的bean注册进来。
  2. 加载环境变量。
  3. 支持多语言。
  4. 实现事件监听。
  5. 注册很多对外扩展点。

10.BeanFactory和FactoryBean有什么区别。

BeanFactory是一个工厂。

FactoryBean是一个特殊的bean,它会表现出工厂的样子,是一个能生产或者修饰对象生成的工厂bean,可以通过getObject()来获取FactoryBean对象。在beanFactory中使用"&"来取得FactoryBean本身。

11. Spring IOC 的加载过程

概念态到定义态

  1. 实例化一个Applicationcontext的对象

  2. 调用bean土厂后置处理器完成扫描;

  3. 循环解析扫描出来的类信息,

  4. 实例化一个BeanDefiniti。n对象来存储解析出来的信息;

  5. 把实例化好的beanDefinition对象put到beanDefinitionMap当中缓存起来
    以便后面实例化bean;

  6. 再次调用其他bean工厂后置处理器;
    定义态到纯净态

  7. 当然spring还会干很多事情,比如国际化,比如注册BeanPostProcessor等
    等,如果我们只关心如何实例化一个bean的话那么这一步就是spring调用finishBeanFactorylnitialization方法来实例化单例的beam实例化之前spring要做验证,需要遍历所有扫描出来的类,依次判断这个bean是否Lazy,是否prototypej是否abstract等等

  8. 如果验证完成spring在实例化一个bean之前需要推断构造方法,因为spring实例化对象是通过构造方法反射,故而需要知道用哪个构造方法,

  9. 推断完构造方法之后spring调用构造方氵去反射实例化一个对象,注意我这里说的是对象、对象、对象,这个时候对象已经实例化出来了,但是并不是一个完整的bean,最简单的体现是这个时候实例化出来的对象属性是没有注入,所以不是一个完整的bean。
    从纯净态到成熟态

  10. spring处理合并后的beanDefinition

  11. 判断是否需要完成属性注入

  12. 如果需要完成属性注入,则开始注入属性
    初始化

  13. 判断bean的类型回调Aware接口

  14. 调用生命周期回调方法

  15. 如果需要代理则完成代理
    创建完成

  16. put到单例池 -> bean完成 -> 存在spring容器中

12.Spring Ioc扩展点以及调用时机

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容