私は、どのメソッドがトランザクションであるかを定義するためにSpring AOPを使ったアプリケーションを書きました。私は今、これがいかにすばらしいアイデアであったかについて、二番目の考えを持っています。私は実際に何かが間違っている(そして私は論理的に一貫性のないデータベースがある)まで、明らかに現れないマイナーリファクタリング(メソッドシグニチャの変更など)の後に数回ヒットしました。データベーストランザクション管理にAOPを使用しますか?
だから、私はいくつかのことに興味がある:
- は、他の人が(例えば
@Transactional
注釈を経由して)明示的なトランザクション管理に戻すことを決めたことがありますか? - "壊れた"ものがあるかどうかを確認するのに役立つツールがビルドプロセスの一部として使用できますか?
- AOPを使用してトランザクションを管理している場合、私は間違いを避けるためにどのような手順を取っていますか?影響を与える可能性が間違った場所にあるメソッドにパラメータを追加する(私はあなたが装飾されたメソッドを参照することができますし、一緒にメソッド名の変更と春
XML
設定をリファクタリングしますのIntelliJ IDEAを使用していますが、これは必ずしも十分ではない
+1 - Spring 2.5の注釈を活用するのは良いアドバイスです。 – duffymo
私はもともとこれをやっていなかったのは、個々の永続性呼び出しとは対照的に、トランザクショナルでなければならないビジネスロジックであるということです。私はSpringのインポートを全面的に望んでいませんでした。永続化の実装の詳細を可能な限り分離したいのです。 –
右の理由から、@Transactionalアノテーションは永続性の階層ではなくサービス層に属しています。トランザクションとは、サービスで表されるユースケースの作業単位に関するものです。 – duffymo