Spring AOP(一)
阿新 • • 發佈:2020-10-11
介紹
AOP,aspect oriented programing,面向切面程式設計。
動態代理:基於JDK和基於第三方cglib
- Joinpoint(連線點):可以被攔截的點
- Pointcut(切入點):被攔截的點
- Advice(通知/增強):對連線點進行改變
- Target(目標物件):代理的目標物件
- Aspect(切面):切入點和通知的結合
使用
1、配置pom.xml
<!--aop依賴jar--> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.4</version> </dependency>
2、配置檔案的約束
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> </beans>
3、配置通知
<bean id="account" class="com.my.entity.Account> <bean id="accountAspect" class="com.myentity.AccountAspect"> <!--AOP配置--> <aop:config> <!--配置全域性切入點--> <!--<aop:pointcut id="" expression=""/>--> <!--配置切面--> <aop:aspect id="myAspect" ref="accountAspect"> <!--配置切面屬性:通過通知標籤描述切入點--> <aop:before method="myBefore" pointcut-ref="pt"/> <aop:after-returning method="myAfterReturning" pointcut-ref="pt"/> <aop:after-throwing method="myThrowing" pointcut-ref="pt"/> <aop:after method="myAfter" pointcut-ref="pt"/> <!--配置區域性切入點:只能當前切面使用--> <aop:pointcut id="pt" expression="execution(public void com.yaroange.service.impl.UserServiceImpl.addUser(java.lang.Integer))"/> </aop:aspect> </aop:config>
切入點表示式
execution([修飾符] 返回值型別 包名.類名.方法名(引數))