Spring

Spring Batchでエラー時だけ特定の処理をする設定

こんな感じ? <batch:job id="testJob"> <batch:step id="test1"> <batch:tasklet ref="hogeTasklet" /> <batch:end on="*" /> <batch:next on="FAILED" to="errorStep" /> </batch:step> <batch:step id="errorStep"> <batch:tasklet ref="errorTasklet" /> </batch:tasklet></batch:step></batch:job>

HandlerMappingを自動でやりたい

リクエストのパスに対応するControllerを見つけるためのクラスがHandlerMapping。 こういうのは、命名規約といったルール付けをしておくことで、実装者が 設定ファイルを書かなくても自動でできるようにしたい。 イメージとしては、/top/top.formにアクセス…

プログラムでトランザクション制御

基本的にはアノテーションでトランザクション制御するけど、 独自にコミットしたいなーって時もあるわけで、そんなテスト。 @Service public class HogeServiceImpl implements HogeService { @Autowired private PlatformTransactionManager transactionMan…

Spring3.0とMyBatisの設定メモ

SpringとMyBatisを連携して使う場合、MyBatisが用意している連携用ライブラリを使うらしい。 というわけでメモ。正しいのかどうかは知らないけど、ちゃんとできてるようには見える。 設定ファイル データソースとMyBatisとトランザクションの定義。 トランザ…

ログ用Interceptorを作る

SpringにはDebugInterceptorやらSimpleTraceInterceptorといったものが 用意されてるけど、ログはオレオレフォーマットが好きなので、無駄に 拡張して作ってみる。 作るもの MethodInterceptorを実装したクラス 上記Interceptorを設定した設定ファイル Metho…

ファイルのアップロード

ほぼサンプル通り。 Commons FileUploadをパスに通し、設定ファイルに以下を追加するだけ。 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="1024" /> </bean> あとは、マルチパートでリクエストを飛ばせば、勝手にやってくれる。 その他メモ。 ファイルサイズが超過した場合、MaxUploadSizeExceededExceptionがス…

例外のハンドリング

例外のハンドリングは、運用(ログ)にも関わるので、デフォで用意されて いるものよりは独自に実装したいなーというわけでメモ。 手順はこれだけ。 HandlerExceptionResolverを実装したクラスを作成する。 resolveExceptionの戻り値であるModelAndViewで遷移…

Controller前後に実行される共通の処理を作る

というメモ。 HandlerInterceptorかWebRequestInterceptorの実装クラスを作り、 設定ファイルに書けば、Contorollerの前後に共通の処理を挟める ようになる。 実装クラス public class HogeInterceptor implements HandlerInterceptor { private static fina…

DriverManagerDataSource

Springのデータソースの定義で指定する org.springframework.jdbc.datasource.DriverManagerDataSource というクラス、プールの機能とかはないちょっとしたテスト用のものだった。 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/spring…

Spring MVC 始めました

で、前に触ったときと同じく、どうもしっくりこないなーなんて。 Struts病なんでしょうかね。自由度高いのはうれしいけど、そうすると破綻する プロジェクトばっかだからなぁ。 追記 ついでにMyBatis(iBATIS)も使う。