Всем привет!Вопрос по устройству интеграции спринга и джексона.Что происходит,когда в методе контроллера возвращаешь простой объект,а в респонсе уже автоматом генерируется джсон ?AOP или как-то по другому?
Не АОП. Там немного геморный алгоритм, но если кратко:
Есть такая штука HandlerMethodReturnValueHandler. Это стратегия, которая отвечает за то, каким образом нужно обработать возвращаемый ответ (Который в конечном итоге когда-нибудь выйдет за пределы спринга и вернется из servlet API).
Есть одна из имплементаций этой стратегии - RequestResponseBodyMethodProcessor. Эта имплементация обрабатывает
@ResponseBody и
@RequestBody в методах при помощи различных HttpMessageConverter (тоже интерфейс-стратегия, которая как несложно догадаться отвечает за конвертацию Http сообщений в какие-то форматы)
Ну и наконец есть имплементация этого интерфейса (через промежуточный абстрактный класс) - MappingJackson2HttpMessageConverter. Он уже непосредственно мапит объекты на JSON'ы и обратно.