AOP面向切面编程
Spring AOP 部分概念
1.什么是AOP?
AOP(Aspect Orient Programming): 面向切面编程
Aspect :表示切面,给业务方法增加的功能,叫做切面。 切面一般都是非业务功能, 而且切面功能一般都是可以复用的。 例如 日志功能, 事务功能, 权限检查,参数检查, 统计信息等等
Orient:面向,对着
Programming:编程
2.AOP作用
- 让切面功能复用
- 让开发人员专注业务逻辑,提高开发效率
- 实现业务功能和其他非业务功能的解耦合
- 给已存在的业务方法增加功能,不需要修改原本的代码
3.AOP编程术语
(1)切面(Aspect)
给业务方法增加的功能。
(2)连接点(JoinPoint)
连接切面的业务方法,这个方法执行时,会执行切面的功能。
(3)切入点(Pointcut)
指声明的一个或多个连接点的集合。通过切入点指定一组方法,这些方法执行时,都能增加切面的功能。被标记为 final 的方法是不能作为连接点与切入点的。因为最终的是不能被修改的,不能被增强的。
(4)目标对象(Target)
指将要被增强的对象,即包含主业务逻辑的类的对象。
(5)通知(Advice)
表示切面的执行时间,通知定义了增江代码切入到目标代码的时间点,是木匾方法执行之前执行,还是之后执行等
4.AOP技术的实现
- Spring:
Spring框架实现AOP思想中的部分功能。Spring框架实现AOP操作比较繁琐。
- Aspectj:
独立的框架。
官网地址:The AspectJ Project | The Eclipse Foundation
5.使用Aspectj框架实现AOP
5.1 常用的通知五种类型:
- @Before:前置通知
- @AfterReturnring:后置通知
- @Around:环绕通知
- @AfterThrowing:异常通知
- @Ater:最终通知
5.2 AspectJ的切入点表达式
execution(modifiers-pattern?
ret-type-pattern
declaring-type-pattern?
name-pattern(param-pattern)
throws-pattern?)
modifiers-pattern] 访问权限类型
ret-type-pattern 返回值类型
declaring-type-pattern 包名类名
name-pattern(param-pattern) 方法名(参数类型和参数个数)
throws-pattern 抛出异常类型
?表示可选的部分
以上表达式共 4 个部分,黑色文字表示可省略部分
execution(访问权限 方法返回值 方法声明(参数) 异常类型)
更多推荐
所有评论(0)