Spring - AOP工作流程和切入点表达式

107 阅读1分钟

工作流程

1、Spring容器启动

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

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

  • 匹配失败,创建对象

  • 匹配成功,创建原始对象(目标对象)的代理对象

4、获取bean的执行方法

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

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

目标对象:原始功能去掉共性功能对应类产生的对象,这种对象是无法直接完成最终工作的

代理对象:目标对象无法直接完成工作,需要对其功能进行回填,通过原始对象的代理对象实现

切入点表达式

  • 切入点:要进行增强的方法

  • 切入点表达式:要进行增强方法的描述方式

描述方式一:执行com.itheima.dao包下的BookDao接口中的无参数updata方法

execution(void com.itheima.dao.BookDao.updata())

描述方式二:执行com.itheima.dao.impl包下的BookDaoImpl类中的无参数updata方法

execution(void com.itheima.dao.impl.BookDaoImpl.updata())

切入点表达式标准格式

image.png

切入点表达式通配符

image.png

书写技巧

image.png