1、基本配置
1)在Spring的配置文件或配置类中,开启注解扫描
2)使用注解创建被增强类和增强类对象
3)在增强类上添加注解@Aspect
4)在Spring配置文件中开启生成代理对象
4.1)xml配置文件方式:
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
配置类方法:
4.2)
@Configuration
@ComponentScan(backPackage={"com.zong.spring"})
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class ConfigAop{}
2、配置不同类型的通知
增强类(代理类)
@Component
@Aspect
public class UserProxy{
//前置通知
@Before(value="execution(* com.zong.spring.User.add(..))")
public void before(){
System.out.println("before...");
}
//后置通知
@AfterReturning(value="execution(* com.zong.spring.User.add(..))")
public void afterReturning(){
System.out.println("afterReturning...");
}
//最终通知
@After(value="execution(* com.zong.spring.User.add(..))")
public void after(){
System.out.println("after...");
}
//异常通知
@AfterThrowing(value="execution(* com.zong.spring.User.add(..))")
public void afterThrowing(){
System.out.println("afterThrowing...");
}
//环绕通知
@Around(value="execution(* com.zong.spring.User.add(..))")
public void around(ProceedingJoinPoint proceedingJoinPoint){
System.out.println("环绕之前...");
//执行被增强的方法
proceedingJoinPoint.proceed();
System.out.println("环绕之后...");
}
}
执行结果
环绕之前...
before..
add..
环绕之后..
after...
afterReturning...
异常执行结果
环绕之前...
Before...
after...
afterThrowing..
.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。