AOP是什么

在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想

把业务处理和公共处理分开,对原有的代码没有侵入

AOP的使用场景主要包括事务处理、日志记录、性能统计、安全控制、异常处理等。

AOP 是一个概念,一个规范,本身并没有设定具体语言的实现。

AOP是典型的动态代理模式的体现

AOP并没有帮助我们解决任何新的问题,它只是提供了一种更好的办法,能够用更少的工作量来解决现有的一些问题,并且使得系统更加健壮,可维护性更好。同时,它让我们在进行系统架构和模块设计的时候多了新的选择和新的思路

AspectJ是AOP的一个很悠久的实现,它能够和 Java 配合起来使用。
AspectJ 中重要概念:
Aspect:Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。
Joint point:表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。
Pointcut:表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。
Advice:Advice 定义了在 pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。

你可能感兴趣的:(spring基础)