Spring 基础知识

① spring默认创建的对象是单例的 singleton 多例必须指定scope=‘prototype’
② IOC和DI
IOC:控制反转,将对象创建和成员变量赋值的控制权交给spring工厂 解耦合
DI:依赖注入,通过spring工厂,给某个依赖的属性赋值
③ AOP aspect oriented programming
本质是代理模式 代理
1)静态代理
通过代理类为原始类增加额外的功能
原始类 + 额外功能 原始类和代理类必须实现同一接口
2)JDK动态代理 接口代理
通过代理类为原始类增加额外功能
流程:
创建原始类
编写额外功能 advice
定义切点 指定额外功能加在什么位置
编织 weave 组装 切面 = 通知(advice) + pointcut
Advice 接口,四个子接口
MethodBeforeAdvice
AfterReturningAdvice
MethodInterceptor
ThrowsAdvice

	动态代理不需要编写代理类,JVM会在程序的运行期间动态生成类的字节码文件

3)cglib 动态代理 子类代理

你可能感兴趣的:(spring,面试)