- Spring容器启动
- 读取所有切面配置的切入点,
@Pointcut
,【读取配置!!】
public class MyAdvice {
//切入点,链接连接点
@Pointcut("execution(void com.itheima.dao.BookDao.update())")
private void pt(){};
// 2、共性代码,通知,将通知和切入点绑定,切面
@Before("pt()")
public void method(){
Long startTime = System.currentTimeMillis();
System.out.println(startTime);
}
}
- 初始化bean,判定bean对应的类的方法是否匹配到任意切入点。比如update方法是否在BookDao中存在
匹配失败,创建对象
com.itheima.dao.impl.BookDaoImpl@55fe41ea
class com.itheima.dao.impl.BookDaoImpl
匹配成功,创建原始对象(目标对象)的
代理
对象
com.itheima.dao.impl.BookDaoImpl@6913c1fb
class com.sun.proxy.$Proxy19
- 获取bean的执行方法
获取bean,调用方法执行,完成操作
网友评论