Spring MVC に Converter
という型変換の仕組みがあり、
これは @InitBinder
で PropertyEditor
なやつとどう違うのか、どう使い分けるのか。
まず、Converter
はこのような感じ。
Spring From the Trenches: Using Type Converters With Spring MVC
Converter
は Spring 3 からのフィーチャーで後発。
公式ドキュメント(4.3.x): 9. Validation, Data Binding, and Type Conversion
ここにそれっぽい回答が書いてあった。
java - Spring MVC type conversion : PropertyEditor or Converter? - Stack Overflow
ようするに、
@InitBinder
でPropertyEditor
なやつは、UI 由来のリクエストパラメータを受け取る際にアプリケーションが扱いやすい型に変換する場合に使うConverter
は UI だけでなくアプリケーションの任意の場面で、ある型から望みの型に変換する場合に使う
ということらしい。
また、この回答に対するコメントにも興味深いことが書かれており、
PropertyEditor
はステートフルで何度も作成されるConverter
はステートレス
ということみたい。