Преобразование типов возврата метода, аннотированных @ResponseBody, в фактические HTTP-ответы осуществляется реализациями интерфейса HttpMessageConverter . Spring поставляется с реализацией для JAXB . Поэтому, если вы можете аннотировать свой класс User аннотациями JAXB, это может сработать для вас. Если пользователь является аннотируемым объектом Hibernate, добавление в него JAXB также может стать проблематичным. Вы можете создать промежуточный объект для JAXB.
В качестве альтернативы вы можете использовать любой произвольный маршаллер с помощью Marshalling Message Converter . Существует довольно много реализаций Marshaller , встроенных на выбор, или вы всегда можете написать свою собственную.
Вы включаете конвертеры, регистрируя их в AnnotationMethodHandlerAdapter (в сервлете диспетчера xml:
<bean id="xmlMessageConverter" class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter">
<property name="supportedMediaTypes" value="text/xml" />
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="xmlMessageConverter"/>
</list>
</property>
</bean>