How request parameter binding and type conversion works in spring-mvc?
<p>I am not understanding the flow of Spring MVC, Here are some doubts which I am facing.</p>

<pre><code>@RequestMapping(value = "/addUser",method = RequestMethod.POST)
public ModelAndView addUser(@RequestParam("name") String name, @RequestParam("age") Integer age)
{
   // business logic
}
</code></pre>

<ul>
<li>How are the <code>name</code> and <code>age</code> field are being binded? I mean which spring module is doing it(any interceptor)?</li>
<li>How <code>age</code> field to converted to <code>Integer</code>?</li>
<li>How <code>User</code> Object marked with <code>@ModelAttribute</code> in below 's example is getting assigned form field values ?</li>
</ul>

<p>Model attribute binding</p>

<pre><code>@RequestMapping(method = RequestMethod.POST, value = "doLogin")
public ModelAndView doLogin( @ModelAttribute("user") User userModel, HttpSession httpSession)
{

}
</code></pre>

<ul>
<li>Which interceptor is injecting <code>HttpSession</code> object? </li>
<li>As <code>User</code> is marked as <code>Singleton</code>, then if I have 1000 users accessing my web application ain't every user will get a different object? then how is it <code>singleton</code>?</li>
</ul>