SpringAOP
1、AOP(Aspect Oriented Programming)面向切面编程 概述:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 AOP是OOP的延续,是函数式编程的一种衍生范型,利用AOP可以对业务逻辑的各个部分进行隔离,,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. 作用:在程序运行期间,不修改源码对已有方法进行增强(加上统一的逻辑处理)。 优势:减少重复代码、提高开发效率、维护方便 AOP是一门统一拦截处理的技术,类似于过滤器技术。与过滤器不同的是过滤过滤是请求路径,而AOP拦截的是方法。 AOP技术的底层技术就是动态代理模式的实现,所有先了解代理模式和动态代理模式 2、代理模式 概述:为其他对象(代理对象)提供一种代理以控制对这个对象(源对象)的访问。就是说,声明一个代理对象去控制对源的对象的访问 代理模式的缺陷: (1)代理类必须要继承或者实现一个基类或者接口,每个接口都要实现一个新的代理类,限制了代理的源对象的类型 (2) 每个方法的逻辑处理,还是要重复编写。(代理模式并不可以减少代码) 3、动态代理模式 (1)动态代理解决了以上代理模式两个问题: 代理模式的类型是固定的,而动态代理模式的代理类,不需要指定固定的接口,可以自由的使用任何接口来实现代理 代理模式的代码还是重复编写的