当前位置: 首页 > java>阅读正文

Spring基本思考题以及参考答案

2021.12.24 朱丰华 42 次 留下评论 688字

1.请用一句话概述Sring框架?

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器(框架),以IOC模式为核心,从而实现应用程序组件的松耦合结构,通过AOP以动态非侵入的方式增强服务。

2.Spring 框架中都用到了哪些设计模式?

  1. 工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;
  2. 单例模式:Bean默认为单例模式。
  3. 代理模式:Spring的AOP功能用到了动态代理模式;

3.怎么理解控制反转?

控制反转是指:对组件对象控制权的转移,从程序代码本身转移到了外部容器。

这样,就能够让容器管理和维护对象,并实现了解耦。

4.IOC、AOP的实现原理?

IOC:通过工厂模式以及反射机制实现对bean的管理和维护。

AOP:通过JDK的动态代理实现。(动态代理主要有两种实现,分别是 JDK 动态代理 cglib 代理。)

(采用JDK动态代理,目标类必须实现某个接口,否则不可用;而cglib底层是通过使用一个小而块的字节码处理框架ASM来转换字节码并生成新的类,覆盖或添加类中的方法。)

5.Spring通知有哪些类型?

Spring切面可以应用5种类型的通知:

  • 前置通知(Before):在目标方法被调用之前调用通知功能;
  • 后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;
  • 最终通知(After-returning ):在目标方法完毕执行之后调用通知;
  • 异常通知(After-throwing):在目标方法抛出异常后调用通知;
  • 环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为。

本篇完,还有疑问?留下评论吧

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注