Привязка к аннотациям Web MVC в конечном итоге основывается на
org.springframework.beans.AbstractPropertyAccessor
, который имеет две конкретные реализации:
org.springframework.beans.BeanWrapperImpl
org.springframework.beans.DirectFieldAccessor
Оба принимают объект Java, который будет целью для установки свойств.
Во-первых, BeanWrapperImpl использует методы установки / получения объекта java, в то время как другой устанавливает поля напрямую.
Оба проверяют, что методы / поля являются общедоступными / доступными, и, в противном случае, используют setAccessible (true) отражения, чтобы убедиться, что его можно установить.
Из Web MVC создается экземпляр AbstractPropertyAccessor, и карта параметров HttpRequest передается в AbstractPropertyAccessor # setPropertyValues.
После вызова java-объект заполняется всем, что находится на карте