AOPはSpringの様々な機能で利用されています。今回は代表的なトランザクション管理について紹介します。

 

・トランザクション管理処理

トランザクション管理処理はメソッドに@org.springframework.trasaction.annotation.Transactionアノテーションを付与することで自動で管理されます。メソッドが正常終了した場合はトランザクションがコミットされ、実行時例外がスローされた場合はロールバックされます。

 

@Transactional
public Reservation reserve(Reservation reservation)
{
    // 予約処理
}

次の問題はこの@Transactionalはどのメソッドにつけるべきか?
基本的に、DB操作によって、書き込みがまとめされているメソッドに該当アノテーションをつけるべきですが、
各リクエストごとに、全てのメソッドをチェックして、書き込み処理がまとめされているメソッドを探すことは大変ですので、
@Controllerのメソッドにつけることは一番簡単です。
もちろん、読み込みだけのメソッドに、該当アノテーションをつけることは意味がないです。