1.请用一句话概述Sring框架?
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器(框架),以IOC模式为核心,从而实现应用程序组件的松耦合结构,通过AOP以动态非侵入的方式增强服务。
2.Spring 框架中都用到了哪些设计模式?
- 工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;
- 单例模式:Bean默认为单例模式。
- 代理模式: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):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为。
本篇完,还有疑问?留下评论吧