这节课我们来练习一下AOP
有了切入点表达式以后,我就能圈定范围了。
id是唯一标识
里面放置前置通知,再来一个后置通知
哎?拦截器的invoke方法,不用写(不是很懂)
这里提示一下:
这里是Aop,不是springAop,(strutsAop也有,strus2是在spring2.5以后出来的,strutsAop实际上是借鉴了的)直到spring2.5的出现把Aop发展到了最顶点,关注的是事务处理。
代理对象:实际上是 前置通知+目标方法+后置通知
这个是结构图:很简单
前置通知和后置通知,都有一个参数,那就是连接点
通过下面这个语句我们就能够获得 连接点的名称
String nethodName=joinPoint.getSingletrue().getName()
String joinPoint.
同样的,后置通知也是有以上的方法的,虽然说我切面的各个通知也目标参数是松耦合的,但是我依然可以在通知中获得很多信息。后置通知中,还有一个返回值参数,也是可以在方法中获得的。
最终通知:无论目标方法是否正常执行,都会执行最终通知,在实际的应用中并不是很常见。
异常通知:
以上的通知类中,都要一个参数 连接点
环绕通知:
先经过环绕通知,可以控制目标方法的执行,不写则不执行。
如果不写的话,最终通知也不会执行。也就是说如果目标方法未执行,则最终通知也不执行。比如说,你写权限的时候,让你执行就执行,不写就不能执行,这很重要!!
注意参数的不同
joinPoint.proceed()
前置通知和后置通知能在目标方法的前面和后面加一些代码,但是不能控制不能控制目标方法的执行,但是环绕通知可以做得到。