Springでアノテーションがついてるメソッドにアスペクトする方法

2015-03-17T00:00:00+09:00 Java Spring Framework

メソッドに特定のアノテーションをつけている場合に指定したMethodInterceptorを実行する機能があるっぽいのでやってみた

doma2を使ってみた (3) - @Repositoryを使う -

2015-03-16T00:00:00+09:00 Java doma Spring Framework

doma2の機能ではなくSpring Frameworkの@Repositoryで定義した場合どうなるのか気になったのでやってみた

Spring Batchの設定ファイルに関して

2015-01-01T00:00:00+09:00 Java Spring Framework

前回のJava EE Batch Processingに触ってみたでも書いたけど、Spring Batchを使うときにbaseContext.xmlみたいにごちゃごちゃ書かなくてもいい模様

Spring Frameworkのdefault scope

2014-11-03T00:00:00+00:00 Java Spring Framework

っていう事でやってみた

Spring WebMVCをやってみる (19) - UriComponentsBuilder -

2014-02-11T00:00:00+00:00 Java Spring Framework

公式ドキュメント的にはBuild URIsBuild URIs to Controllers and Methodsなあたりを読みつつ

Spring WebMVCのformとFormatterの件

2014-01-10T00:00:00+00:00 Java Spring Framework

※おそらくは書いてる内容は自分以外は理解しにくいと思いますので興味ないならCTRL+Wしてください(笑)

Spring WebMVCをやってみる (18) – AnnotationFormatterFactory -でも書いてるけど

「getPrinter実装してもどういう作用で発生するのかが謎」。普通にFormatterを使う場合とかだと等で作用されるっていうはあるのだけど、このAnnotationFormatterFactoryの事象だけはgetPrinterメソッドが作用する事が無い

っていう件に関して。結論から言うと「やり方が悪い」っていうだけだった模様

Spring WebMVCをやってみる (18) - AnnotationFormatterFactory -

2014-01-04T00:00:00+00:00 Java Spring Framework

前回でも書いたように、@DateTimeFormatのようなアノテーションによってFormatterが作用する仕組みっていうのを作る事も出来る。それを担うのがAnnotationFormatterFactoryになる模様

Spring WebMVCをやってみる (17) - Formatter -

2014-01-03T00:00:00+00:00 Java Spring Framework

前回のConverter同様に型を変換したりする仕組みな模様。@DateTimeFormatのようにアノテーションによって型変換を行うのも可能(後日書く)。んまぁ違い的な所としては非常に曖昧で微妙なのだけど、Formatterはインターフェースによりパースする所と出力サポートを行うメソッドを実装する必要がある。んまぁ詳しい違いとかわかり次第補足なりする予定

とりあえず使ってみる。題材的なのとしてEnumを変換する仕組み的なのを作ってみる

thymeleaf+spring mvc

2014-01-02T00:00:00+00:00 Java Spring Framework

タイトルどおりでSpring WebMVCでJSPを使わずにthymeleafを使ってやるってだけ。まぁドキュメント(但しSpring3)を見れば良いだけなので、ざっくり行きます

Spring WebMVCをやってみる (16) - Converter -

2013-12-26T00:00:00+00:00 Java Spring Framework

以前にも引数にDateを使う場合だとかはConversionServiceな設定が必要だって件を書いたけど、そういう所を自分で作って利用したい場合どうすれば良いのかって所を検証してみた

Spring WebMVCをやってみる (15) - TypeMismatch -

2013-12-25T00:00:00+00:00 Java Spring Framework

前回の「Spring WebMVCをやってみる (14) – @Valid+BindingResult+RedirectAttributes -」で書いたのをそのまま利用

前回だとSampleFormのnameプロパティだけをフォームで入力させて利用するっていうパターンだけやったのですが、SampleFormにはidプロパティもあるのでそれをフォームで入力させる際にあたって、数値(int)型では無い値を入れた場合のエラーメッセージはTypeMismatchを利用する事で出来る模様

Spring WebMVCをやってみる (14) - @Valid+BindingResult+RedirectAttributes -

2013-12-24T00:00:00+00:00 Java Spring Framework

前回で出した問題点として、「エラー表示はビューをレンダリングしているのでリロードするとPOSTなリクエストになる」って件。まぁ良くあるパターンなのかは微妙な所なんですが、対策として

  • ビューをレンダリングしないでフォームを出す所にリダイレクトする
  • リダイレクトする際にFlashスコープでエラーを突っ込んでおく
  • リダイレクト先で上記で突っ込んだエラーがあるのならば、それをビューで表示できるように構成する (BindingResult.MODEL_KEY_PREFIX + ModelAttributeな文字列をキーとする)

っていう感じじゃねーかと。んまぁ今回修正案として出すのはコントローラーだけ(それとテストも)

Spring WebMVCをやってみる (13) - @ValidとBindingResult -

2013-12-23T00:00:00+00:00 Java Spring Framework

簡単に入力検証なのを実現したいのであれば@ValidとBindingResultを利用する事で出来るらしい。色々突っかかる所があるのであくまで暫定的ではあるけどメモっておく

Spring WebMVCをやってみる (12) - RedirectAttributes -

2013-12-20T00:00:00+00:00 Java Spring Framework

んまぁSpring WebMVCでアクションからリダイレクトを利用したい場合等にはredirect:なプレフィックスを利用する事で出来るんだけれども

  • リダイレクト先にパラメーターを設置したい (リダイレクト先で@RequestParam)
  • フラッシュスコープを利用してリダイレクトしたい

っていう要件を検証してみた

Spring WebMVCをやってみる (11) - @RequestMappingのparams -

2013-12-18T00:00:00+00:00 Java Spring Framework

例えば

<form action="/swmvc/sample/index.action" method="post">
    <input type="submit" name="say1" value="say1" />
    <input type="submit" name="say2" value="say2" />
</form>

っていうようにターゲットとなるアクションは1つでサブミットによって処理されるアクションを切り分けたい場合には@RequestMappingアノテーションにparams属性で<input type="submit">で指定されてるname属性の値を指定すれば良いらしいとの事

Spring WebMVCをやってみる (10) - gsonを使う -

2013-12-15T00:00:00+00:00 Java Spring Framework JavaScript

例えば

  • @ResponseBodyアノテーションがついてるメソッドでStringじゃなくてオブジェクトだとかをぶん投げたりとか
  • @RequestBodyアノテーションがついてるメソッドの引数でStringじゃなくてオブジェクトだとかを指定したりとか

っていうケースな場合にJSONで投げられる事を前提とするのであれば、MessageConverterな方式を利用する事でサポート出来るらしいのでやってみた

Spring WebMVCをやってみる (9) - @ExceptionHandler -

2013-12-14T00:00:00+00:00 Java Spring Framework

タイトル通り、例外が発生すると特定の@ExceptionHandlerがついてるメソッドが発動して処理を促せるような物らしい

Spring WebMVCをやってみる (8) - @ModelAttribute -

2013-12-13T00:00:00+00:00 Java Spring Framework

リクエストパラメーターとかからJavaBeanとなるオブジェクトを引数にマッピング出来たりだとか、ModelAndViewで使用するモデルを初期化したりする事も出来る模様

Spring WebMVCをやってみる (7) - @RequestBody -

2013-12-11T00:00:00+00:00 Java JavaScript Spring Framework

まぁアノテーション名で分かるようにHTTPリクエストボディを引数にマッピング出来る的な感じの解釈で良いんじゃないかと。例えばJSONデータをぶっこんでコントローラーでパースして利用するような場合とかに使うとかなんですかね

とりあえずやってみた

Spring WebMVCをやってみる (6) - @RequestParam -

2013-12-10T00:00:00+00:00 Java Spring Framework

パスの一部をマッピングで結びつけるのが@PathVariableで、クエリーを結びつけるのが@RequestParam的な解釈で良いんだろうか。

Spring WebMVCをやってみる (5) - PathVariable -

2013-12-09T00:00:00+00:00 Java Spring Framework

例えばRequestMappingで指定するパスの一部を変数で引数にマッピングしたい時とかに使うのが@PathVariableアノテーションな模様。

Spring WebMVCをやってみる (4) - AbstractViewを利用した独自Viewを利用する -

2013-12-08T00:00:00+00:00 Java Spring Framework

前回のSpring WebMVCをやってみる (3) – 返せるレスポンスタイプに関して -でも書いたように、レスポンスを返す型としてView型を返す事も出来る。又、ModelAndViewにsetViewNameを利用する事でも独自のViewを使ってレスポンスを返却させる事が出来る。という事で使ってみた

Spring WebMVCをやってみる (3) - 返せるレスポンスタイプに関して -

2013-12-06T00:00:00+00:00 Java Spring Framework

大まかにSpring WebMVCでコントローラーアクション(@RequestMappingで処理されるメソッド)で返せる値の形式は

  • String (redirect/forward等のプレフィックスも含む)
  • ModelAndView
  • Map<String, Object>
  • String、又はbyte[]等で@ResponseBodyなアノテーションを付与
  • ResponseEntityを使用
  • org.springframework.web.servlet.Viewを使用

っていうような感じで値を返す事が出来る。もちろん値を返さないvoidでも引数にHttpServletResponseを利用してレスポンスを出す事も可能

ModelAndViewはSpring WebMVCをやってみる (2) – アノテーションを使わないコントローラー -で既に検証済みなので省略する。又、最後のViewに関しては後日別途で記事を書く予定になっているので今回は省略する。という事でコントローラー書いてテスト書いて検証してみる

Spring WebMVCをやってみる (2) - アノテーションを使わないコントローラー -

2013-12-05T00:00:00+00:00 Java Spring Framework

前回のだとアノテーションでコントローラーを定義してゼロコンフィギュレーション方式でやってみたのだけど、そうではなくて普通にAbstractControllerを継承する方式でも作る事自体は可能な模様

Spring WebMVCをやってみる (1)

2013-12-03T00:00:00+00:00 gradle Java Spring Framework

タイトル通り、まぁ特に依存性注入するとか細かい所は今回無しな方向で画面にテキストを出すだけな事をSpring WebMVCを使ってやってみる。まぁ要は使い方の一歩目的な感じで

Struts2をやってみる (12) - Spring Framework -

2013-09-23T00:00:00+00:00 Java Spring Framework Struts2

struts2-spring-pluginを使えばStruts2でSpring Frameworkを利用して依存性を注入したりも出来る