mavenで作ったこのプロジェクト全体をどうすればよろしくアップできるのか分からなかったので、とりあえずsrc下のみをあげることにした。
URLはこちら。
https://github.com/ymotchi/TagDiary
ただ、準備段階だからと言って、まったく動かないソースもアレだったので、トランザクション管理がちゃん動くかのテストも兼ねて、超簡単な画面をつけてみた。
まず、それ用のテーブル「testtable」を用意しておく。
testtable | |
---|---|
idtesttable | int(11) PK |
testcolumn | varchar(32) |
そしてTomcatなどのサーバでアプリを起動させ、「http://localhost:ポート/コンテキストルート/index」にアクセス。
で、「」の欄に
1) 適当な文字列を入れた場合
2) 「throwable」と入れた場合
3) 「exception」と入れた場合
で、挙動が変わってくる。
1)の場合は、『「(入力した文字列)」が入力されました』と表示され、testtableに入力した文字列が書き込まれる。
2)の場合は、エラーが画面に表示され、testtableに「throwable」が書き込まれる。
3)の場合は、エラーが画面に表示され、testtableに何も書き込まれない。
これは、applicationContext.xmlのトランザクションの設定のところで、
「rollback-for="java.lang.Exception"」という記述をしたため。
2)の場合は、サービスクラスのメソッドでThrowableが投げられるが、これはExcpetionの親クラスなので、ロールバックはしない。
一方3)の場合は、Exceptionが投げられるため、ロールバックされる。
この設定の効果が分かりやすく表れた。
細かいところは、実際にソースを見ていただくのが良いと思う。
忘れてた・・・。
このソースは、Java SE 7(以上)じゃないと動かない。
新機能を使ってみたくて、文字列のswitch文を使ってみたから。