开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天
AOP术语介绍
切面(Aspect)
切面是指关注点形成的类(关注点是指类中重复的代码),通常是指封装的、用于横向插入系统的功能类(如事务管理、日志记录等)。在实际开发中,该类被Spring容器识别为切面,需要在配置文件中通过元素指定。
连接点(Joinpoint)
连接点是程序执行过程中某个特定的节点,例如,某方法调用时或处理异常时。在Spring AOP中,一个连接点通常是一个方法的执行。
切入点(Pointcut)
当某个或某些连接点满足预先指定的条件时,AOP就能够定位到这个连接点,在连接点插入切面,该连接点也就变成了切入点。
通知/增强处理(Advice)
通知/增强处理就是插入的切面程序代码。可以将通知/增强处理理解为切面中的方法,它是切面的具体实现。
目标对象(Target)
目标对象是指被插入切面的方法,即包含主业务逻辑的类对象。或者说是被一个或者多个切面所通知的对象。
织入(Weaving)
将切面代码插入到目标对象上,从而生成代理对象的过程。织入可以在编译时,类加载时和运行时完成。在编译时进行织入就是静态代理,而在运行时进行织入则是动态代理。
代理(Proxy)
将通知应用到目标对象之后,程序动态创建的通知对象,就称为代理。
代理类既可能是和原类具有相同接口的类,也可能是原类的子类,可以采用调用原类相同的方式调用代理类。
(个人理解,代理和指针有些类似,是原对象的一个替身,调用它就相当于调用原对象)
引介(Introduction)
引介是一种特殊的通知,它可为目标对象添加一些属性和方法。
这样,即使一个业务类原本没有实现某一个接口,通过AOP的引介功能,也可以动态地为该业务类添加接口的实现逻辑,让业务类称为这个接口的实现类。