一,Spring
1,Spring框架中单例bean是线程安全的吗?
2,什么是AOP?你项目有用过吗?
3,Spring事务的失效场景有哪些?
- 发生自身调用(类中使用this调用本类的方法)
- 异常捕获处理
- 抛出检查异常
- 非public修改方法
- 数据库不支持事务
4,Spring的声明周期
- 通过BeanDefinition读取Bean的定义信息
- 通过构造方法实例化对象
- 通过set方法进行依赖注入
- 一系列aware为后缀名的接口的方法实现
- BeanPostProcessor-before前置处理器执行
- 初始化方法执行
- BeanPostProcessor-after后置处理器执行
- bean销毁
5,Spring的循环引用
1,循环依赖产生的原理流程图:
2,三个等级缓存的作用
3,一级缓存的加入(解决不了循环依赖)
4,二级缓存的加入(解决一般对象的循环依赖问题)
可以解决一般对象的循环依赖,被增强对象(代理对象)不能解决其循环依赖问题
5,三级缓存的加入(解决代理对象循环依赖问题)
6,@Lazy注解的使用(解决构造方法出现的循环依赖问题)