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

 

 

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