AOP概述-术语
2019-02-14 本文已影响0人
往事随风_0817
AOP概念-术语
什么是AOP
AOP Aspect Oriented Programing 面向切面编程
- AOP采取横向抽取机制,取代了传统纵向继承体系重复代码(性能监视、事务管理、安全检查、缓存)
- Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标织入增强代码
AOP相关术语
public class UserDaoImp implements UserDao{
public void save(User user){}
public void update(User user){}
public List<User> findAll(){}
public void delete(Long id){}
}
上面是一个非常简单的UserDao的增、删、查、改操作
- Joinpoint(连接点):指的是可以被拦截到的点=>增、删、改、查这些方法都可以被增强,这些方法称为连接点
- Pointcut(切入点):指的是真正被拦截到的点=>只想对save方法进行增强(做权限校验操作),save方法称为切入点
-
Advice(通知):拦截后要做的事情=>对save方法要进行权限校验,权限校验的方法称为通知
- 前置通知:在方法执行之前做的事情
- 后置通知:在方法执行之后做的事情
- 环绕通知:方法之前和方法执行之后都会做一些事情
- 引介: 被增强对象运行期间动态的添加一些方法或增加一些属性(Spring只在方法上做增强,这个了解一些就可以了)
- Target(目标):被增强的对象
- Weaving(织入):将Advice应用到Target的过程=>将权限校验应用到UserDaoImp的save方法的这个过程
- Proxy(代理):被应用了增强后,产生一个代理对象
- Aspect(切面):就是切入点和通知的组合