Ответ 1
Хорошо для привязки данных веб-формы (то есть формы POST) проблема заключается в том, что отражение Java слабовато на конструкторах, поэтому трудно выполнить привязку данных без аннотаций. Давным-давно я размышлял о том, чтобы подать сообщение об ошибке, что привязка данных Springs должна использовать забытый @ConstructorProperties
(iirc я искал сам патч но это было довольно сложно и сломало много вещей). Возможно, кто-то должен подать запрос на функцию.
BTW Я говорю о привязке к веб-привязке (а не к инъекции зависимостей), потому что Spring долгое время оказывал большую поддержку DI на основе конструктора (неизменяемым объектам нужна инъекция на основе конструктора). На самом деле я бы сказал, что инъекция на основе конструктора или (фабрики статических методов) становятся предпочтительной практикой по сравнению с традиционными компонентами getter/setter (вы можете видеть это во многих изменениях классов Spring за эти годы, двигаясь к конечным и конструкторам).
В любом случае мне удалось связать привязку веб-данных с неизменяемыми объектами, используя Jackson https://gist.github.com/agentgt/4458079
(Хотя его использование Jackson для привязки запроса не обязательно должно быть в JSON)
Вы также можете увидеть Spring Webflow DataBinding для неизменяемых объектов через конструктор?, где я оригинал придумал суть и имеет больше информации.