Spring-AOP工作流程

推荐先阅读Spring全家桶

1.spring启动

2.读取所有切面配置中的切入点

@Component
@Aspect
public class MyAdvice{
@Pointcut("execution(void com.zx.dao.BookDao.save())")
private void ptx(){}

@Pointcut("execution(void com.zx.dao.BookDao.update())")
private void pt(){}

@Before("pt()")
public void method(){
System.out.println(System.currentTimeMillis());
}
}

3.初始化bean,判定bean对应的类中的方法是否匹配到任意切入点

  • 第一种:匹配失败,创建对象
  • 第二种:匹配成功,创建原始对象(目标对象)的代理对象

4.获取bean

  • 第一种:获取bean,调用方法并执行,完成操作

  • 第二种:获取的bean是代理对象时,根据代理对象的运行模式运行原始方法与增强的内容,完成操作