1、AOP概述:
编程语言最终的目的就是能以自然、灵活的方式模拟世界。AOP(Aspect Oriented Programing)是软件开发思想发展到一定的产物,当时AOP的出现不是为了替代OOP,而仅仅是作为OOP的一种补充。虽然如此,AOP的使用场合也是有限的,他一般适合于那些有横切面逻辑的应用场合,比如性能检测、访问控制、事务管理等等。
2、什么是AOP:
AOP(Aspect Oriented Programing)被翻译为“面向切面编程”。按照软件重构的思想理念,如果多个类中出出现了相同的代码,应该考虑定义一个公共的抽象类,将相同的代码提取出来。
3、AOP的相关术语:
3.1、连接点:(Joinpoint)
程序执行的某个特定位置,比如在类开始初始化之前、类初始化之后、类的某个方法调用前后;一个类或者一段程序代码拥有的一些具有边界性质 的特定点,这些代码的特定点就被称为“连接点”。连接点由两个信息确定,一是用方法表示程序的执行点,而是由用相对点表示的方位。
3.2、切点:(Pointcut)
每个程序有多个连接点,入一个类拥有两个方法,那么这两个方法都是连接点。连接点相当于数据库中的记录,切点相当于查询条件。切点与连接点不是一对一的关系,一个切点可以有多个连接点。
3.3、增强:(Advice)
增强时织入目标类连接点上的一段程序代码。Spring所提供的增强接口都是带有方位名的:BeforeAdvice、AfterReturningAdvice、ThrowsAdvice等等,只有结合切点和增强才能确定特定的连接点并实施增强逻辑。
3.4、目标对象:(Target)
增强逻辑的织入目标类。
3.5、引介:(Introduction)
引介是一种特殊的增强类,它为类添加一些属性和方法。
3.6、织入:(weaving)
织入是将增强添加到项目类具体连接点上的过程,AOP就像一台织布机,它将目标类、增强或者引介通过AOP这台织布机编织在一起。根据不同的实现技术
AOP有三种织入方法: