学院网站建设招标书,合肥全网推广,北京做网站建设公司,吉林网站制作废话版什么是AOP关于什么是AOP#xff0c;这里还是要简单介绍下AOP#xff0c;Aspect Oriented Programming#xff0c;面向切面编程#xff0c;通过预编译和运行期间提供动态代理的方式实现程序功能的统一维护#xff0c;使用AOP可以降低各个部分的耦合度#xff0c;提高…废话版什么是AOP关于什么是AOP这里还是要简单介绍下AOPAspect Oriented Programming面向切面编程通过预编译和运行期间提供动态代理的方式实现程序功能的统一维护使用AOP可以降低各个部分的耦合度提高代码质量 重要概念JoinPoint 连接点程序执行的某个特定位置PointCut 切点执行的具体位置哪些方法要执行Advice 增强额外的业务逻辑Aspect 切面切点增强人话版这些都是比较正式的定义为了便于理解用我们身边前一段的状况举个简单的来描述下AOP到底是用来干嘛以及这些重要概念到底指的是什么吧俺叫李四是一只打工崽俺的一天是这样的上班离开居住的小区进入上班的写字楼中午去办公楼对面街的小饭馆恰饭晚上下班离开写字楼进小区回家井然有序而且成年累月几乎不会有什么大改变忽然XXX流感开始蔓延起来了于是在写字楼、小饭店这些公共场合的门口都增加了一个进入需要【扫看】的流程还好出入小区不用于是俺的一天变成了这样上班离开居住的小区【扫看】进入上班的写字楼中午去办公楼对面街的小饭馆【扫看】恰饭晚上下班离开写字楼进小区回家于是——进出小区、进出写字楼、进出恰饭的小饭店这些所有可能会增加“额外的业务逻辑”的地方——Join Point 连接点【扫看】的流程就是俺日常生活以外的部分即“额外的业务逻辑”——Advice 增强写字楼、恰饭的小饭店真实增加了【扫看】这个额外的业务逻辑”的地方——Point Cut 切点不知道有没有客官注意到真实的情况是只有进入这些场所的时候需要【扫看】离开是不需要的而切点只标明了位置那么哪里对“进入”还是“离开”需要【扫看】做出了限制呢自问自答Advice 增强因为Spring AOP中的Advice其实也是有分类的我们可以直接通过源代码进行查看可以看到抽象类AbstractAspectJAdvic有5个的实现类AspectJAfterAdvice 后置通知方法退出的时候执行不论是正常返回还是异常退出都会执行AspectJAfterReturningAdvice 返回后通知方法退出的时候执行只有方法正常完成后执行AspectJAfterThrowingAdvice 抛出异常后通知方法退出的时候执行只有方法抛出异常退出时执行AspectJAroundAdvice 环绕通知可以将要执行的方法point.proceed()进行封装可在其前后添加需要执行的操作AspectJMethodBeforeAdvice 前置通知方法调用前执行