AOP(Aspect-Oriented Programming, 面向切面编程): 是一种新的方法论, 是对传统 OOP(Object-Oriented Programming, 面向对象) 的补充
AOP 的优点
-
每个事物逻辑位于一个位置, 代码不分散, 便于维护和升级
-
业务模块更简洁, 只包含核心业务代码.
常见术语:
切面(Aspect): 横切关注点,一般一个切面对应一个额外功能。(跨越应用程序多个模块的功能)被模块化的特殊对象
目标(Target): 被通知的对象
代理(Proxy): 向目标对象应用通知之后创建的对象
连接点(Joinpoint)
-
被拦截到的点,因为 Spring 只支持方法类型的连接点,所以在 Spring 中连接点指的就是被拦截到的方法
-
获取方法名和参数
切点(pointcut)
-
切入点是一个或一组连接点,通知将在这些位置执行。可以通过表达式或匹配的方式指明切入点
-
找到执行位置。