基于aspectJ的aop开发
基于aspectJ的aop开发
1.AspectJ简介
- AspectJ是一个基于Java语言的Aop框架
- Spring2.0以后新增了对AspectJ切点表达式支持
- 新版本Spring框架,建议使用AspectJ方法来进行Aop开发
- 使用AspectJ需要导入Spring Aop和 AspectJ相关jar包
- spinrg-aop-4.2.4.RELEASE.jar
- com.springsource.org.aopalliance-1.0.0-jar
- spring-aspects-4.2.4.RELEASE.jar
- com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
2.通知类型介绍
@Before 前置通知,相当于BeforeAdvise
@AfterReturning 后置通知
@Around 环绕通知
@AfterThrowing 异常抛出通知
@DeclareParents 引介通知,相当于IntroductionInterceptor(不要求掌握)
3.切入点表达式的定义
- 通过execution函数,可以定义切点的方法切入
- 语法–execution(<访问修饰符>?<方法名>(<参数>)<异常>)
- 举例:
- 匹配所有类public方法:execution(public * *(…))
- 匹配指定包下所有类方法 execution(* com.imooc.dao.*(…))不包含子包
- execution(* com.imooc.dao…*(…)) …*表示包、子包下所有类
4.上面介绍的是注解方式进行Spring Aop开发,下面介绍通过Xml的开发方式
具体可见项目里是怎么写的,spring_aop以及spring_aspect