怎麼用spring Aop最簡單最容易理解

1.先看一個例子java

 <aop:config>
        <aop:pointcut id="deleteOpus"
                      expression="execution(* net.qdedu.activity.service.OpusBizService.delOpus(..))"/>
        <aop:aspect ref="activityParticipationAop">
            <aop:after-returning method="deleteParticipationInfo" pointcut-ref="deleteOpus"
                                 returning="result"/>
        </aop:aspect>
    </aop:config>

 aop:pointcut 指的是切入點 切入點的id是 deleteOpusweb

 expression 指的是掃描對應的service類中的方法(delOpus),*表明的任意類型spring

 aop:aspect ref 指的是對應方法類(activityParticipationAop)express

 aop:after-returning method 指的是你本身在(activityParticipationAop)裏面建立的對應方法(deleteParticipationInfo)spa

 ref 指的是 和切入點id 保持一致  id對應的是切點,ref就至關因而切面,他兩個一相關聯就能夠執行那個service下面的方法了代理

 

2.對應的類code

@Component
public class ActivityParticipationAop {

  
}

 3.對應的方法xml

public void deleteParticipationInfo(JoinPoint jp){
  //獲取做品的id
  IdParam idParam =(IdParam)jp.getArgs()[0];
}

 JoinPoint是和aop一塊兒使用的類,它裏面有4個參數 對象

Signature getSignature(); 	獲取封裝了署名信息的對象,在該對象中能夠獲取到目標方法名,所屬類的Class等信息
Object[] getArgs(); 	獲取傳入目標方法的參數對象
Object getTarget(); 	獲取被代理的對象
Object getThis(); 	獲取代理對象

 4.增長切入點beanblog

 <bean id="paramValidate" class="com.we.core.web.aop.ParamValidate"></bean>
    <aop:config>
        <aop:pointcut id="businessMethod" expression="execution(* *..*.service..*.*(..))"/>
        <aop:aspect ref="paramValidate">
            <aop:before method="process" pointcut-ref="businessMethod"/>
        </aop:aspect>
    </aop:config>

 5.springcontext.xml

<!-- 打開aop 註解 -->
<aop:aspectj-autoproxy />
<!-- 掃描aop.xml -->
<import resource="aop.xml" />
相關文章
相關標籤/搜索