● AOP(概念):
什么是AOP?
○ Aspect Oriented Programming 面向切面編程,利用Aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率。
● AOP(術語):
○ 連接點:類里面那些方法可以被增強,這些方法稱為連接點。
○ 切入點:實際被真正增強的方法,稱為切入點。
○ 通知(增強):實際增加的那個邏輯部分稱為通知。
通知分為:前置,后置,環繞,異常,最終。
○ 切面:是動作,把通知應用到切入點的過程。
● AOP操作:
○ Spring框架一般都是基于 AspectJ 實現AOP操作。
* 什么是AspectJ?
AspectJ不是Spring組成部分,獨立AOP框架,一般把 AspectJ 和 Spring框架一起使用,進行AOP操作。
○ 基于AspectJ實現AOP操作:
① 基于xml配置文件。
② 基于注解方式實現。
○ 切入點表達式:
① 作用:知道對那個類里面的那個方法進行增強。
② 語法結構:execution([權限修飾符],[返回類型],[類全路徑],[方法名稱],[參數列表])。
● AOP操作(AspectJ注解):?
//前置通知
● 相同切入點抽取:
● 有多個增強類對同一方法進行增強,設置增強類優先級:
○ 在增強類上加上注解 @order( 數字類型值 ),數字類型值越小優先級越高。
● 使用配置文件實現AOP操作:
<!-- 創建對象 -->
<bean id="student" class="com.djl.aopxml.Student"></bean>
<bean id="persen" class="com.djl.aopxml.Persen"></bean>
?
<!-- 配置aop增強 -->
<aop:config>
<!-- 配置切入點 -->
<aop:pointcut id="a" expression="execution(* com.djl.aopxml.Student.eat(..))"/>
<!-- 配置切面 -->
<aop:aspect ref="persen">
<aop:before method="before" pointcut-ref="a"></aop:before>
</aop:aspect>
</aop:config>
● 完全基于注解:
浙公網安備 33010602011771號