SpringFrameworkで実現したいトランザクション管理の方向性

業務で扱っているJavaフレームワーク(Strutsベース)では、

  • Struts Action処理開始
  • Struts Action内でDB処理を実行
  • Struts Action処理完了(正常終了)

という流れの中で、最後のStruts Actionクラス内での処理が終了した際に、拡張元親クラスで遷移情報(successかそうでないか)を判別し、commit/rollbackの制御を行っている。(DBアクセス個別では制御を行っていない)

また、処理の途中で敢えてコミットしたい(採番情報が戻るのを避けたかったり、仕様的な問題等で)場合にも専用のクラスを使ってコミットする事が出来ている。


今回自分で作ろうと思っているStruts/Springベースのフレームワークでは、この案を採用しようと思ってるんだけど、これってSpringで実現させる事が出来るのかしら?可能ならどうやって?Spring関連書籍ではDAOを作成し、DAOのメソッドに対してトランザクションの管理を行っているけど、これをStrutのAction処理に割り当てるだけで行けるのかな?自分のタイミングでコミットするにはDataSourceTransactionManagerを直に扱えたり出来るのか?


本をさらっと眺めた程度なので、まだ×2全然分かって居りません。この点はDBアクセス絡みの(SpringFrameworkによる)社内フレームワーク枠組みが出来た後の課題だな。