Spring 问答题

题目 01- 请你谈谈自己对于 IoC 和 AOP 的理解

IOC

IOC思想: inversion of controll 指的是 将对象的控制权交给框架,使用的时候按需使用,不需要再去手动new对象。
IOC容器:BeanFactory
在Spring项目启动的时候,会从xml文件或者注解中加载对象的声明,生成BeanDefinition,然后BeanDefiniton放到IOC容器BeanFactory中,下一步反射实例化对象,注入属性。这样,在启动后,对象实例已经生成了。

AOP

AOP思想是:aspect oriented programing 面向切面编程。核心思想是不修改当前切面的基础上增加新功能,实现方式是动态代理。其中动态代理有两种:基于jdk的和基于cglib的。
除了在Spring中,其他非常多的框架都用到了AOP思想,比如Mybatis的插件,Spring MVC的拦截器。

题目 02- 请问 Spring 如何解决循环依赖问题

Spring 解决了什么情况下的循环依赖问题?

Spring解决了set方法注入的,单例的循环依赖。

为什么不可以解决构造方法的循环依赖?

因为set方法注入发生于实例化之后,有参构造方法发生于实例化的时候

为什么需要三级缓存来解决循环依赖?

三级缓存即为3个Map,首先至少需要2个Map解决循环依赖问题,1个放成品,1个放半成品。Spring框架又设置了1个Map,这个Map的value是对象工厂,用来解决IOC问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值