1、当代码中有多个业务切面使用到同一个切入点的时候,这时候就需要确定切面的优先级了
<!-- 缓存>数据源>事务 -->
<aop:config>
<!-- 切入点(service的所有方法) -->
<aop:pointcut id="txPointcut" expression="execution(* com.xxxxx.service.*.*(..))" />
<!-- 事务切面-->
<aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice" order="2"/>
<!-- druid spring切面监控 -->
<aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" order="-2"/>
<!-- 数据源切面 -->
<aop:aspect ref="dataSourceAspect" order="1">
<aop:before method="before" pointcut-ref="txPointcut" />
</aop:aspect>
<!-- 缓存切面 -->
<aop:aspect ref="cacheAspect" order="-1">
<aop:around method="aroundMethod" pointcut-ref="txPointcut"/>
</aop:aspect>
</aop:config>
2、aop:advisor就是一个特殊的切面