基于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的开发方式

基于aspectJ的aop开发

具体可见项目里是怎么写的,spring_aop以及spring_aspect