引入:Aop是什么? Aop主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程汇总的某个步骤或阶段,以获得逻辑过程中各部分之间的耦合性的隔离效果
1.总结:
- Aop:面向切面编程:是一种设计模式(思想),强调把一些其他逻辑从程序的业务逻辑中剥离的思想
- 比如说操作数据库的时候dao只关心数据库的操作,而把事务的管理,日志的管理等逻辑剥离出来。
- 这样的好处:使得程序员更多的精力关注与业务逻辑的编写,提高事务管理,日志管理等逻辑代码的重用率等好处。
Aop编程思想中,最重要的实现方式就是代理技术
2.代理技术方案: (见代码)
- JDK动态代理技术
注意:使用jdk提供的代理方式,目标类必须有接口,没有接口jdk提供的代理生成方式不行 - CGLIB 动态代理技术
注意:CGLIB创建的代理对象,目标类可以不实现任何接口
3.AOP 术语
- 切面: Aspect 比如说事务,权限,安全性,日志,缓存等,与业务逻辑没有关系的部分。(通知方法的类就是切面)
- 通知:所谓通知就是拦截到joinpoint(连接点)之后要做的事情就是通知,通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面类中的方法)
- 切入点:所谓切入点,要进行那些拦截的方法的定义(PointCut)(条件)
- 连接点:目标类的方法
- 目标对象:Target 被代理对象
- 织入:是指把切面应用到目标对象来创建新的代理对象的过程,切面在指定连接点织入到目标对象