什么是AOP
AOP(Aspect Oriented Programming)-面向切面编程,在运行时,动态地将代码切入到类地指定方法、指定位置上的编程思想就是面向切面编程。
AOP是Spring提供的关键特性之一。AOP即面向切面编程,是OOP编程的有效扩充。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关逻辑——比如权限管理,事务管理,日志记录等等。这些系统性的便策划给你工作都可以独立编码实现,然后通过AOP技术切入进系统即可,从而达到了将不同的关注点分离出来的效果。
AOP相关的概念
- Aspect:切面,切入系统的一个切面,比如事务管理是一个切面,权限管理也是一个切面;
- Join point:连接点,也就是可以进行横向切入的位置
- Advice:通知,切面在某个连接点执行的操作(分别为:Before advice,After returning advice,After throwing advice,After(finally) advice,Around advice)
- Pointcut:切点,符合切点表达式的连接点,也就是真正被切入的地方。
AOP实现原理
AOP实现的基础就是动态代理,什么是动态代理。代理说的是一种设计模式–代理设计模式,动态代理是使用Cglib或者JDK实现动态代理。
手写AOP
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zenshin's blog!
评论