博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring AOP
阅读量:3960 次
发布时间:2019-05-24

本文共 893 字,大约阅读时间需要 2 分钟。

AOP概念

AOP对通用的业务抽取并封装,形成独立的切面,使业务逻辑各部分之间的耦合度降低,提高程序复用性

相关概念

横切:OOP编程中,日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性、异常处理和透明的持续性也都是如此,这种散布在各处的无关的代码被称为横切。

使用"横切"技术,AOP把软件系统分为两个部分:核心关注点横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事物。

切面(Aspect):通用的业务封装起来,降低模块之间的耦合度,实现代码的复用

连接点(Joint point)被拦截到的点,因为Spring只支持方法类型的连接点

切入点(Pointcut):定义了拦截“何处”的连接点的表达式

通知/增强(Advice):定义了连接点方法被调用的某个时间点执行,分为前置、后置、异常、最终、环绕通知五类

目标对象(Target):织入 Advice 的目标对象,代理的目标对象

织入(Weaving):将切面应用到目标对象并导致代理对象创建的过程

通知的类型

前置通知

@Before:在某连接点之前执行的通知,但这个通知不能阻止连接点之前的执行流程(除非它抛出一个异常)

后置通知

@AfterReturning在某连接点正常完成后执行的通知,通常在一个匹配的方法返回的时候执行

环绕通知

@Around:在某连接点之前之后都执行的通知

环绕通知使用一个代理ProceedingJoinPoint类型的对象来管理目标对象,在通知体内,调用ProceedingJoinPoint的proceed()方法使导致后台的连接点方法执行

异常通知

@AfterThrowing:在方法抛出异常退出时执行的通知

最终通知

@After 最终通知当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)

三种切入点

全局切入点:多个切面共享

局部切入点:一个切面共享

通知范围切入点:当前通知内使用

转载地址:http://mpazi.baihongyu.com/

你可能感兴趣的文章
Hibernate中Criteria的完整用法
查看>>
sql jsp
查看>>
Word生成目录
查看>>
JSP彩色验证码源程序编写
查看>>
java操作Excel、PDF文件
查看>>
java 获得系统变量
查看>>
window.event对象用法讲解
查看>>
jive license保护原理
查看>>
java des加密
查看>>
struts&hibernate&spring例子
查看>>
inno使用教程
查看>>
网吧系统母盘制作(系统分区整体考虑优化配置篇)
查看>>
spring beans beanfactory applicationcontext
查看>>
使用ORM工具进行数据访问
查看>>
使用ORM工具进行数据访问
查看>>
Quartz 使用手记 --转
查看>>
编译与部署Eclipse+Tomcat+MySQL+Liferay4.1.2
查看>>
MySQL用户授权
查看>>
mysql忘记密码怎么办?~
查看>>
MySQL修改密码方法总结
查看>>