Spring中如何得到编译后的形参名的 LocalVariableTableParameterNameDiscoverer

众所周知,在 jdk 8 以前java源码编译后通过反射是无法获得形参名的,在Java 8及之后,编译的时候可以通过-parameters 为反射生成元信息,可以获取到方法的参数名,但这个行为默认是关闭的,  我们平常用Spring的时候也没有开启, 那在没有开启和jdk 8 以前那在Springmvc项目中是如何获得方法的形参的呢,这个形参可关系到根据参数名称依赖注入和Controller中参数绑定。

答案是 通过字节码技术,将该类的class文件读进来,通过class的存储信息来得到的 ,就是LocalVariableTableParameterNameDiscoverer的inspectClass方法得到形参名

 

更详细的分析参见这个哥们的这篇帖子  

 https://www.jianshu.com/p/f569c5705e8a   Spring MVC参数解析之ParameterNameDiscoverer

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章