Spring面试题

有关Spring理解

有关spring的理解

1.spring是一个IOC和AOP容器框架
2.spring是一个生态,构建java应用程序的基础设施

spring优点和缺点

优点
	
springIOC 集中管理了对象,降低了对象间的耦合度
AOP 支持了日志异常等得集中管理不需要处处写
封装了很多功能性代码大大简化了开发

IOC介绍

springIOC 控制了创建对象的权利,创建对象不是再由人来创建
创建对象时使用DI进行依赖注入。集中管理方便维护解耦

IOC使用了简单工厂模式+反射机制实现
创建时使用了类路径+反射调用getbean方法进行反射

DI和IOC区别

IOC是解决耦合的思想DI是解决IOC的一换
面向对象原则
单一职责 接口分离原则(例如手机充电啥的)
依赖倒置原则(

BeanFactory的作用

职责用来生产bean
也是容器 管理者Bean的生命周期	

BeanDefination

存储bean的定义信息,决定Bean的生产方式

ApplicationContext 与BeanFactory

在这里插入图片描述

ApplicationContext(叫做上下文,或者容器)可以自动注册BeanDifination
BeanFactory不可以自动注册BeanDifination

ApplicationContext 可以提供更多职责而BeanFactory只是一个工厂只负责生产bean,相当于手机门户店,和手机生产工厂的功能。ApplicationContext作为Bean的容器更加智能更加好。

IOC容器加载过程

1.实例化一个ApplicationContext
2.调用Bean工厂后置处理器
3.循环解析扫描出来类信息
4.实例化一个BeanDefinition对象来存储解析出来的信息
5.把实例化好的BeanDefinition对象put到BeanDefinitionMap当中缓存起来,以便之后实例化Bean
6.再次调用Bean后置工厂处理器
定义态到纯净态
7.会干其他很多事情,例如是否需要使用beanPostProcessor等等,如果我们只关心如何实例化一个bean的话,那么这一步就是spring调用,检查实例化对象是否是单例bean 是否lazy是否prototype 是否abstract等等。
8.推断构造方法(反射出合适的构造方法)并构造使用实例化对象,但并不是一个完整的Bean ,这个时候Bean还没有进行属性注入。
纯净态到成熟态
9.处理合并后的BeanDeinition 判断是否需要属性注入,如果需要开始注入。(已经有是对象了)
初始化
10.如果实现AOP 属还需要1.判断Bean的回调接口,2.调用生命周期回调方法, 如果需要代理进行代理初始化 包括三个 .
创建完成
12.put到单例池存在Spring容器当中

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值