SpringAOP中可以通過配置切點來指定在哪些方法上應用切面。切點可以通過表達式或者注解來定義。
<aop:pointcut>
元素來定義切點,例如:<aop:pointcut id="myPointcut" expression="execution(* com.example.service.*.*(..))"/>
上面的例子表示定義了一個切點myPointcut
,它匹配了com.example.service包下的所有方法。
@Pointcut("execution(* com.example.service.*.*(..))")
public void myPointcut() {}
上面的例子定義了一個切點方法myPointcut()
,它匹配了com.example.service包下的所有方法。
無論是使用表達式還是注解定義切點,都需要在配置文件中聲明切點和切面的關系,例如:
<aop:config>
<aop:aspect ref="myAspect">
<aop:pointcut id="myPointcut" expression="execution(* com.example.service.*.*(..))"/>
<aop:before method="beforeAdvice" pointcut-ref="myPointcut"/>
</aop:aspect>
</aop:config>
上面的例子聲明了一個切面myAspect
,并指定了在myPointcut
切點上應用beforeAdvice
通知。