# springCourse05 **Repository Path**: H_circle/springCourse05 ## Basic Information - **Project Name**: springCourse05 - **Description**: 利用AspectJ进行AOP - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-09 - **Last Updated**: 2021-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 使用aspectJ框架实现AOP 给已经存在的一些类和方法 增加额外的功能 前提是不改变原来的代码 aspectJ实现AOP的基本步骤 1,实现maven的项目 2.加入依赖 1)spring的依赖 2)aspectJ的依赖 3)jUnit单元测试 3.创建目标类:接口和实现类 目的 给上面类中的方法增加功能 4。创建切面类:本质是普通类 1)在类的上面加入 @Aspect 2)在类中定义方法,方法就是切面要执行的功能代码 -在方法的上面加入aspectj中的通知注解(@Before等) -指定切入点表达式execution() 5.创建spring配置文件 :声明对象 把对象交给容器统一管理 声明对象可以--注解或者xml配置文件的(本代码使用后者) 1)声明目标对象 2)声明切面类对象 3)声明aspectJ框架中的自动代理生成器标签 自动代理生成器:用来完成代理对象的自动创建功能(之前用的是MyApp中的Proxy.newProxyInstance) 6.怎么用?创建测试类,从spring容器中获取目标对象(实际上是代理对象) 通过代理执行方法,实现功能增强 该框架的注解一共是6个 因此一个包是一个注解的讲解 @Aspect:用来表示当前类是切面类;用在类定义额上面 1==@Before:放在切面函数之前 ==JoinPoint参数 2==@Afterreturning后置通知 3==@Around环绕通知 4==@AfterThrowing异常通知 5==@After最终通知 6==@pointCut注解