什么是AOP?
面向切面编程(AOP)是对面向对象开发的一种补充,它允许开发人员在不改变原来模型的基础上动态地修改模型以满足新的需求。比如增加日志,安全,异常处理的功能。
Spring支持五种类型的通知:
Before(前) org.apringframework.aop.MethodBeforeAdvice
After-returning(返回后) org.springframework.aop.AfterReturningAdvice
After-throwing(抛出后) org.springframework.aop.ThrowsAdvice
Arround(周围) org.aopaliance.intercept.MethodInterceptor
Introduction(引入) org.springframework.aop.IntroductionInterceptor
例子:Spring通过注解的方式来定义切面类
@Aspect public class SleepHelper {
public SleepHelper(){ }
@Pointcut("execution(* *.sleep())") //切入点 public void sleeppoint(){}
@Before("sleeppoint()") //在切入点执行前做的事 public void beforeSleep(){ System.out.println("睡觉前要脱衣服!"); }
@AfterReturning("sleeppoint()")//在切入点执行返回后做的事 public void afterSleep(){ System.out.println("睡醒了要穿衣服!"); }
} |