Spring 3.0.5 Web MVC ベースのアプリケーションに取り組んでいます。私たちのコードでは、次のようなことを頻繁に行います。
@ModelAttribute(ModelKeys.SOME_BEAN)
public SomeBean newSomeBean() {
return new SomeBean();
}
これは必要ないと思います。しかし、実際にそうでなかったとしたら、どうしてこれほど多くのコード レビューをすり抜けることができたのだろうか? 私の理解では、コントローラーメソッドが新しい SomeBean を必要とする場合、そのメソッドのパラメーターに @ModelAttribute で注釈を付けるだけで十分でしょうか? 次に、Spring はデフォルトのコンストラクターを使用して、コントローラー メソッドを呼び出すために必要な Bean を新しくします。
@RequestMapping(method = RequestMethod.POST)
public String doIt(
@ModelAttribute(ModelKeys.SOME_BEAN) final SomeBean bean,
final BindingResult bindingResult)
{
...
}
ここで、Spring は SomeBean のインスタンスを新しく作成し、POST されたデータからそれにデータ バインドしようとしますよね? 最初のコード スニペットに示されているようなメソッドは必要ありませんか? これを確認するか、これについてのあなたの考えを教えてください。先に進んで、空の Bean を新たに作成する以外に何もしないこれらすべてのメソッドを削除した場合、リスクが発生しますか?