springmvc 參數轉換
題外:
spring3.1後對註解使用的handlermapping和adapter是RequestMappingHandlerMapping 和 處理器適配器RequestMappingHandlerAdapter
,之前是DefaultAnnotationHandlerMapping和處理器適配器AnnotationMethodHandlerAdapter
。
題內:
之前通過url找到對應的類的處理方法,然後需要將報文中的參數轉換為處理方法需要的參數,具體實現是靠adapter中的解析器實現的。adapter對應參數的解析,也是先註冊解析器,然後判斷那個解析器適合就用哪個,這些解析器可以自己構建,系統也提供一下默認的,通過getDefaultArgumentResolvers獲得。每個解析器的實現類都會實現supportsParameter方法,用於判斷是否支持處理方法中的參數。比如參數上[email protected]
轉換器的選擇是根據報文content-type和目標類型來匹配合適的轉換器()
springmvc 參數轉換