aspectj框架的配置我就不说了,大家可以自己百度一下,挺简单的
给大家讲一下怎么样使用
用aspectj框架来实现
该框架的特点:
1,可以不用写生成的动态代理的对象.
2,可以写多个切点和多个通知
3,aspectj有六种通知类型
1. 前置通知Before 相当于BeforeAdvice
2. 后置通知AfterReturning 相当于AfterReturningAdvice
3. 环绕通知 Around 相当于MethodInterceptor
4. 抛出通知AfterThrowing 相当于ThrowAdvice
5. 引介通知DeclareParents 相当于IntroductionInterceptor
6. 最终通知After 不管是否异常,该通知都会执行
并且aspectj框架,可以用通知可以不用实现接口
Aspect框架的xml编写
只需要三步
1,定义一个通知对象
2,定义一个目标对象
3,用aop标签(切面),在中间定义切点和添加通知对象,然后就可以了
Aspectj框架会自己创建动态代理
由标签决定 aop:before前置通知 aop:around环绕通知 aop:after后置通知等 ..... 记住一定要配置的属性:method要和通知方法名字相同, pointcut-ref:设置的切点
关于切点表达式写法
1. execution(public * *()) 所有的public的方法
2. execution(*cn.itheima.aop.*(..)) 所有的aop包下的所有类的方法(不包含子包)
3. execution(*cn.itheima.aop..*(..)) 所有的aop包及其子包下的所有类的方法
4. execution(*cn.itheima.aop.IOrderService.*(..)) IOrderService接口中定义的所有方法
5. execution(*cn.itheima.aop.IOrderService+.*(..)) 匹配实现特定接口所有类的方法
6. execution(*save*(..)) 区配所有的以save开头的方法