1. IOC 概念:Inversion Of Control 翻译成 “控制反转” 本质:对象交给Spring来管,而不是自己new 作用:削减计算机程序的耦合(解除代码中的依赖关系) 原理:工厂模式+反射+xml配置文件 2. DI 概念:Dependency Injection。 翻译成 “依赖注入”,它是 spring 框架核心 IOC 的具体实现 本质:给某个对象设置值 作用:对应之间有依赖关系,再也不需要我们手动去设置值了,Spring 框架会帮我们解决 原理:反射设置值 3. AOP 概念:全称是 Aspect Oriented Programming 即: 面向切面编程 就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强 作用:在程序运行期间,不修改源码对已有方法进行增强 优势:减少重复代码; 提高开发效率; 维护方便 实现方式:使用动态代理技术,在 Spring 中,框架会根据目标类是否实现了接口来决定采用哪种动态代理的方式 -------AOP核心概念------- 目标类(target): 要被增强的类 代理类(proxy): 使用动态代理产生目标类的代理 切入点(pointcut): 目标类中需要增强的方法,这些方法都称为切入点 通知(advice): 增强类中定义的方法,这些方法用于增强目标方法 切面(aspect): 切入点+通知 连接点(joinpoint): 目标类中的所有方法 连接点包含切入点 织入(weaving): 将通知方法加到目标方法中的过程 spring aop 整个过程就是织入 引入(introduction): 在目标类引入新的属性或者新的方法 |