-
连接点(Joinpoint)
:在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候都可以是连接点。 -
通知(Advice)
:通知增强,需要完成的工作叫做通知,就是你写的业务逻辑中需要比如事务、日志等先定义好,然后需要的地方再去用。
主要包括5个注解:Before,After,AfterReturning,AfterThrowing,Around。
@Before
:在切点方法之前执行。
@After
:在切点方法之后执行
@AfterReturning
:切点方法返回后执行
@AfterThrowing
:切点方法抛异常执行
@Around
:属于环绕增强,能控制切点执行前,执行后,用这个注解后,程序抛异常,会影响@AfterThrowing这个注解
-
切点(Pointcut)
:其实就是筛选出的连接点,匹配连接点的断言,一个类中的所有方法都是连接点,但又不全需要,会筛选出某些作为连接点做为切点。如果说通知定义了切面的动作或者执行时机的话,切点则定义了执行的地点。切入点表达式如何和连接点匹配是AOP的核心:Spring缺省使用AspectJ切入点语法。 -
引入(Introduction)
:在不改变一个现有类代码的情况下,为该类添加属性和方法,可以在无需修改现有类的前提下,让它们具有新的行为和状态。其实就是把切面(也就是新方法属性:通知定义的)用到目标类中去。 -
目标对象(Target Object)
:被一个或者多个切面所通知的对象。也被称做被通知(adviced)对象。既然Spring AOP是通过运行时代理实现的,这个对象永远是一个被代理(proxied)对象。 -
AOP代理(AOP Proxy)
:AOP框架创建的对象,用来实现切面契约(例如通知方法执行等等)。在Spring中,AOP代理可