SpringMVC注入参数时为什么必须要在注解中
2018-01-22
存在的问题:在SpringMVC注入参数的时候,如@PathVariable、@RequestParam注解,我们都必须想下图中的格式书写,可能会有人存在疑问,为什么变量名和传递的参数名相同,还需要在注解中重复的写变量名呢?这个可以完全可以省略不写的。其实这个观点是错误的,这里我会给大家说明这是为什么。
分析:我们在编写代码的时候使用的Eclipse或者MyEclipse开发工具,这些开发工具的默认运行方式是debug运行,当在使用Eclipse工具测试的时候,就是在debug环境下运行的,此时方法中参数的名称是会记录到类中,但是在正式上线的时候,在实际的运行环境中运行时是不会开启debug模式,也就是说上线后方法中参数的名称(变量名)是不会记录到类中的,而是通过反射生成一个参数名,问题就是在这里,当这注解中不注明参数名时,自动生成的参数名就会和传递参数名不相同,此时就会出现传入的参数值无法找到匹配的变量接收,也就是无法注入参数值,从而就会出现异常。
出现的异常:
既然这样,我们怎么知道Eclipse是否开启debug模式呢?
看下图:我们首先右击我们的工程-->properties
这样就可以很好的解释问题中所描述的情况,因此在书写此类代码的时候一定要注意不要忘记注解中的参数名和方法上的变量名保持一致。
阅读全文