springMVC框架的理解加深,个人的一些想法
一
写spring-boot整合的时候,有种想看源码的冲动!呸,是钻牛角尖的毛病犯了...
@RequestMapping("/index")
public String index(Map<String, Object> map) {
map.put("hello", "from HiController map");
Map<String, Object> temp = new HashMap();
temp.put("hi", "from HiController new map");
/*不用写后缀*/
return "/index";
}
问题的产生就是为什么hello能传到前端,hi不能,因为都是同种类型的数据啊?
二
其实,大家靠猜都猜到spring通过反射,对@RequestMapping标志的方法都做了一些操作,那么具体是什么操作呢?
通过看源码,spring里面的invokeHandlerMethod,resolveHandlerArguments说的很清楚了,详细的我就不贴出来了,有兴趣的可以自己看看。
因为我感觉就算贴出来大家理解起来也难,所以就决定写一个伪代码来解释
三
func spring{
map在此处已定义
func index(map){
修改map
定义temp
修改temp
}
此处map已经修改
temp并不存在
}
这么看的话。spring的反射是不是很容易理解?
四