专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 什么是AOP

什么是AOP

更新时间:2022-12-23 10:24:18 来源:星辉 浏览274次

AOP是什么

AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,是OOP的延续,而这里的切面则代表动态的将代码加入到指定的方法或位置上,一句话总结:在不改变原有代码的条件下,对该有功能进行扩展;

什么是AOP

1.AOP的作用

可以将日志记录、性能统计、安全控制、事务处理、异常处理等代码从业务逻辑代码中分离出来,放到一个非业务逻辑的方法中,进而改变这些行为的同时不影响业务逻辑代码;实现了减少重复代码以及模块间低耦合的目的,以此来达到专心处理业务逻辑代码,不用管日志记录、事务控制及权限控制等。

2.使用AOP的好处是什么?

Java EE程序员在编写具体的业务逻辑处理方法时,只需要关心核心的业务逻辑处理,既提高了工作效率,又使代码变得更简洁优雅。

在日后的维护中由于业务逻辑代码与其它共有代码分开存放,而且共有代码是集中存放,从而是维护工作变得简单轻松。

AOP中关键性概念

1.切面【Aspect】

切面其实就是共有功能的实现,切面类的工作就称为通知,同时它也是通知和切点的结合,通知和切点共同定义了切面的全部内容,通知定义的是切面的“要做什么”和“在何时做”;而切点定义的是切面的“在何地做”;两者结合就是展现切面在何时、何地、做什么(功能)。

在实际应用中通常是一个存放共有功能实现的普通Java类,之所以能被AOP容器识别成切面是在配置中指定的;

如:日志切面、权限切面、事务切面等...

2.通知【Advice】

通知又名拦截器,它定义了切面是做什么以及何时使用,即在某个特定的连接点上执行的动作,它是切面的具体实现。以目标方法为参照点,根据放置位置的地方不同,通知分为如下5种类型通知:

前置通知(Before)—实现MethodBeforeAdvice接口:在目标方法被调用之前调用通知功能。

后置通知(After)—实现AfterReturningAdvice接口:在目标方法完成之后调用通知,不会关心方法的输出是什么。

返回通知(After-Returning):在目标方法成功执行之后调用通知。

异常通知(After-throwing):在目标方法成功执行之后调用通知。

环绕通知(Around)—实现MethodInterceptor接口:目标方法执行前后都会执行自定义的行为,相当于合并了前后置通知。

3.连接点【Joinpotint】

程序在运行过程中能够插入切面的地点。即被通知的类中的方法都可能是切点,所以这些都是连接点,定义成切点后,这个连接点就变成了切点。通知的类可能是一个类,也肯是一个包底下的所有类,所以连接点可成千上万来记,是一个虚概念,可把连接点看成是切点的集合。注:Spirng只支持方法级的连接点。

如:方法调用、异常抛出或返回值等...

4.切入点【Pointcut】

多个连接点的集合,用于第一通知应该切入到哪些连接点上。即在被通知的类上,连接点谈的是一个缥缈的大范围,而切点是一个具体的位置,用于缩小切面所通知的连接点的范围。

不同的通知通常需要切入到不同的连接点上,这种精准的匹配我们通常使用明确的类和方法名称或使用正则表达式来定义的,说白了切点就是让通知找到“发泄的地方”。

5.目标对象【Target】

即将切入切面的对象,也就是那些被通知的对象。

以上就是关于“什么是AOP”的介绍,大家如果想了解更多相关知识,可以关注一下本站的Java星辉在线学习,里面的课程内容从入门到精通,细致全面,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>