在spring中如果对同一个切点配置了多个aop的切面,织入顺序默认是随机的,对于需要强制代理顺序的,比如注入数据源和事务管理,需要手动指定代理顺序。可以使用如下方式:
<aop:advisor pointcut-ref="services" advice-ref="insertDataSource" order="1"/>
<aop:advisor pointcut-ref="services" advice-ref="transaction" order="2" />
order 的值越小,执行顺序越在前面。