7

私は、休止状態の実用的な知識を持って、春に不慣れです。私の仕事は、春の宣言型アプローチを使用してトランザクションを実装することでした。そして、Googleのおかげで、Googleの助けを借りて成功しました。しかし、application-context.xmlで使用した用語について明確に理解することはできません。

1.1。

 <tx-advice>

</tx-advice>
  1. <aop-config>
        // here is point cut were declared
    </aop-config>
    

誰かが上記の点について私に説明することができますが、その間私はグーグルからもそれを理解しようとしています。

4

2 に答える 2

29

すでに正常に実装しているspring transactionので、

ではSpring、次の3つの方法でトランザクションを実装できます。

  1. プラットフォームトランザクション管理。
  2. 宣言型トランザクション管理。
  3. プログラマティックトランザクション管理。

実装したものは、XMLを介した宣言型トランザクション管理と呼ばれます。

transactionつまり、SpringのAOP機能による実装を行いました。

構成をXMLベースのAOPtx:advice XML構成と組み合わせると、相乗的な組み合わせが可能になります。たとえば、メソッド名を使用して、そのメソッドに適用するトランザクションの種類を自動的に判断できます。

、、、saveなどmodifyで始まるすべてのメソッドにトランザクションを適用するsavePizza()saveColdDrink()modifyOrder()ますmodifyBill()。これらについてはadvice、xmlファイルでを定義する必要があります。

<tx:advice id="txAdvice" >
  <tx:attributes>
    <tx:method name="save*" propagation="REQUIRED"/>
    <tx:method name="modify*" propagation="REQUIRED"/>
  </tx:attributes>
</tx:advice> 

save上記の行を使用して、またはで始まるメソッドでのみトランザクションが必要であると述べたように、アドバイスは準備ができていmodifyます。pointcut次に、の要素を使用して、どのBeanが上記のアドバイスを必要とするかを示しますaop-config。たとえば、com.mytransaction.serviceパッケージ内で利用可能なすべてのクラスにトランザクションアドバイスを適用するとします。

このために、xmlファイル内に次の行を追加する必要があります。

<aop:config>
  <aop:pointcut id="allServices"
    expression="execution(*com.mytransaction.service.*.*(..))"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="allServices"/>
</aop:config>

つまり、<tx:advice>何をするか、またはどのトランザクションの動作を適用するかを意味します。 pointcut内部の要素<aop-config>は、トランザクションを適用する場所を示します。<aop:advisor advice-ref="txAdvice" pointcut-ref="allServices"/>

于 2012-10-13T19:27:05.627 に答える
2

このタグはトランザクション管理構成<tx:advice>に固有ですが、タグは一般にアスペクト指向プログラミングを行うために使用できます。<aop:config>

AOPは、ロギングやアクセス制御など、トランザクション以外にも多くの用途に使用できます。また、トランザクション管理は必ずしもAOPを使用して実装する必要はありません。これは、Springで通常行われる方法です(ただし、SpringはProgrammatic Transaction Managementもサポートしています)。

于 2012-10-13T13:36:48.380 に答える