2

Spring トランザクションを使用しており、サービス クラス メソッドの 1 つを以下のように同期する必要があります。

package com.xyz.service;
class  XYZService{
  public  synchronized void methodA{
   }

  public  synchronized void methodB{
   }
}

以下のように、Spring txnsをサービスクラスに適用しました

<aop:config>
        <aop:advisor id="serviceTx" advice-ref="txAdvice" pointcut="execution(* *..service.*Manager.*(..)) order="0"/>
    </aop:config>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*"/>
        </tx:attributes>
    </tx:advice>

<bean id="xyzManager" class="com.xyz.service.XYZService">
           </bean>

したがって、Spring Bean(xyzManager) で methodA または methodB を呼び出すと、それはまだ同期呼び出しですか? 私を助けてください..

4

1 に答える 1

2

簡単な答えは「はい」です。Spring は「コンテナー」を作成し、メソッドの元の署名には触れません。

于 2013-03-01T13:03:56.463 に答える