javaAOP
AOP
AOP 面向切面编程,一种编程范式,指导开发者如何组织程序结构
OOP 面向对象编程
作用:不惊动原始设计的基础上做增强
面向切面编程
连接点:程序在执行过程中的任意位置,粒度为执行方法,抛出异常,设置变量等
在 springAOP 中理解为方法的执行
切入点:匹配连接点的式子
在 SpringAOP 中,一个切入点可以只描述一个具体的方法,也可以匹配多个方法
一个具体方法
匹配多个方法
通知:在切入点执行的操作,就是共性功能
在 SpringAOP 中,功能最终以方法的形式呈现
通知类:定义通知的类
切面:描述通知与切入点的对应关系
AOP 入门案例
案例设定:测定接口执行效率
简化设定:在接口执行前输出当前系统时间
开发模式:xml or 注解
思路分析:
导入坐标(pom.xml)
制作连接点方法(原始操作,Dao 接口与实现类)
制作共性功能
定义切入点
绑定功能和切入点关系(切面)
AOP 工作流程
Spring 容器启动
读取所有切面配置中的切入点
初始化 bean,判定 bean 对应的类中方法是否匹配到任意切入点
匹配失败,创建对象
匹配成功,创建原始对象(目标对象)的代理对象
获取 bean 执行方法
获取 bean,调用方法并执行,完成操作
获取 bean 是代理对象时候,根据代理对象的运行模式运行原始方法与增强内容,完成操作
AOP 切入点表达式
切入点:要进行增强的方法
切入点表达式:要进行增强的方法的描述方式、
标准格式:动作关键字(访问修饰符 返回值 包名.类.方法名(参数)异常名)
快速描述:通配符
*:单个独立的任意符号,可以独立出现,也可以作为前缀或者后缀出现
..:多个连续的任意符号可以独立出现,常用于简化包名与参数
+:专用于匹配子类类型
AOP 通知类型
版权声明: 本文为 InfoQ 作者【秋名山码民】的原创文章。
原文链接:【http://xie.infoq.cn/article/92163526dfce14c9c3f60fbbd】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论