在Spring Mvc控制器中的方法的参数,写@RequestParam注解与不写的区别?
1,如果表单中的name字段与方法中的参数名一致的话,会自动设置
2,写的话,可以给表单name提交的参数改个名字,如:@RequestParam("user")User u,user是表单提交的,可以换成u
猜想,需要验证:
1,@Autowired这种装配注解会在扫描生成Bean的时候,就会把bean装配完成.
1,@Autowired这种装配注解会在扫描生成Bean的时候,就会把bean装配完成.
2,类名上配的@RequestMapping是在根据访问路径进行解析,然后就拿到了标注这个注解的类Class,
继续在方法上查找@RequestMapping注解,然后,判断方法参数上的注解,
如果有参数注解,则判断注解类型,做相应的工作!将上传的数据字段转换成标注对象的实例,(反射生成实例),
反射传参,使用Method回调完成方法的调用.
3,如果标注@ResposeBody则根据设定的规则,将返回值转换成JSON格式的数据!返回前端!
有时间可以自己实现下这个猜想!
spring的控制器加上@Controller就是个标识作用,扫描类的时候会保存进spring的容器,
当访问的时候,会根据访问路径去查找这些标注了@Controller注解的Bean,Spring容器已经将控制器实例化了,
再去查找访问路径的路径是否和配置的@RequestMapping匹配.然后调用,回到了上面的内容了!