我们正在开发一个基于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对象,是否会存在风险呢?