Spring
こんな感じ? <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>
リクエストのパスに対応するControllerを見つけるためのクラスがHandlerMapping。 こういうのは、命名規約といったルール付けをしておくことで、実装者が 設定ファイルを書かなくても自動でできるようにしたい。 イメージとしては、/top/top.formにアクセス…
基本的にはアノテーションでトランザクション制御するけど、 独自にコミットしたいなーって時もあるわけで、そんなテスト。 @Service public class HogeServiceImpl implements HogeService { @Autowired private PlatformTransactionManager transactionMan…
SpringとMyBatisを連携して使う場合、MyBatisが用意している連携用ライブラリを使うらしい。 というわけでメモ。正しいのかどうかは知らないけど、ちゃんとできてるようには見える。 設定ファイル データソースとMyBatisとトランザクションの定義。 トランザ…
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で遷移…
というメモ。 HandlerInterceptorかWebRequestInterceptorの実装クラスを作り、 設定ファイルに書けば、Contorollerの前後に共通の処理を挟める ようになる。 実装クラス public class HogeInterceptor implements HandlerInterceptor { private static fina…
Springのデータソースの定義で指定する org.springframework.jdbc.datasource.DriverManagerDataSource というクラス、プールの機能とかはないちょっとしたテスト用のものだった。 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/spring…
で、前に触ったときと同じく、どうもしっくりこないなーなんて。 Struts病なんでしょうかね。自由度高いのはうれしいけど、そうすると破綻する プロジェクトばっかだからなぁ。 追記 ついでにMyBatis(iBATIS)も使う。