Как я могу сериализовать javabean для загрузки в DataBinder Spring? - PullRequest
0 голосов
/ 07 февраля 2009

Мне нужно сериализовать javabean (с произвольными вложенными bean-компонентами) в простой текст, а затем восстановить как граф объектов.

Для целей этого вопроса меня не интересуют XML, JSON и т. Д., А скорее пары имя / значение.

Spring DataBinder отлично подходит для превращения списка пар имя / значение в реальный объект. Например, мы можем поставить:

values.addPropertyValue("id", "6789");
values.addPropertyValue("nestedBean[0].systemId", "FOO");
values.addPropertyValue("nestedBean[1].systemId", "BAR");

И используйте DataBinder для создания bean-компонента верхнего уровня (со свойством id), содержащего List двух вложенных bean-компонентов.

У меня вопрос, как я могу легко сериализовать бин в формат, который ожидает DataBinder?

Я бы ожидал чего-то такого:

Map<String,String> reduceBeanToNameValuePairs(Object bean)

но не повезло найти что-либо подобное.

1 Ответ

1 голос
/ 25 марта 2009

Вы можете взглянуть на Commons BeanUtils . Его класс BeanMap предоставляет метод entrySet для доступа к свойствам упакованного компонента в виде записей карты.

Эта функциональность уже достаточна для "плоских" bean-компонентов и, вероятно, обеспечит хорошую отправную точку для добавления необходимой рекурсии для вложенных графов bean-компонентов.

...