2010-09-14 3 views
1

Ma définition de printemps en ce qui concerne trasnsaction sont définis comme suit:Spring AOP et transaction ajouter des intercepteurs personnalisés

<bean id="txInterceptor" 
    class="org.springframework.transaction.interceptor.TransactionInterceptor"> 
    <property name="transactionManager" ref="transactionManager"/> 
</bean> 

<aop:config> 
    <aop:pointcut id="defaultServiceOperation" 
      expression="execution(* x.y.service.*Service.*(..))"/> 
    <aop:advisor pointcut-ref="defaultServiceOperation" 
      advice-ref="defaultTxAdvice"/> 
</aop:config> 

<tx:advice id="defaultTxAdvice"> 
    <tx:attributes>       
     <tx:method name="*"/> 
    </tx:attributes> 
</tx:advice> 

Maintenant, je voudrais ajouter quelques intercepteurs supplémentaires que mon App contient, qui se déroulera avant chaque fois que l'intercepteur de transaction est appelé. c'est-à-dire que je voudrais ajouter à l'autre conseil 'defaultServiceOperation', ou ajouter aux pré-intercepteurs 'defaultTxAdvice'. Quelque chose comme:

<property name="preInterceptors"> 
     <list> 
      <ref bean="optimisticLockingInterceptor"/> 
      <ref bean="deadLockingInterceptor"/>    
     </list> 
</property> 

Est-il possible et comment puis-je le faire?

+0

Est-ce que la question n'est pas claire ou que Spring ne supporte pas un tel pattern et qu'il n'y a pas de solution? – Spiderman

Répondre

1

Combien d'intercepteurs vous pouvez fournir, le TransactionInterceptor doit être fourni en premier dans la liste des intercepteurs que vous mentionnez.

Questions connexes