2016-11-04 5 views
1

Я написал UnwrappingBeanSerializer для моего объекта. В настоящее время этот сериализатор зарегистрирован с использованием ConfigureJacksonObjectMapperКак написать одиночный объектMapper для отдыха с пружинными данными и моего класса @RestController

Этот сериализатор отлично работает для API-интерфейсов REST, созданных с помощью режима ожидания пружины. Но у меня есть обычай @RestController для одного и того же объекта, но он не знает о сериализаторе, зарегистрированном в конфигурации «весна-данные-отдых».

Я хочу сериализовать свой ответ с помощью UnwrappingBeanSerializer как в API-интерфейсах для переноса данных с весной, так и в мои пользовательские контроллеры.

Как достичь этого?

Я также пробовал с @JsonSerialize на моем классе сущности. Но я не могу создать компонент для unWrappingBeanSerializer с BeanSerializerBase

ответ

1

Regular @RestController и Spring Data REST контроллеров имеют различные потоки и конфигурацию. Если вы используете Spring Data REST, то лучше использовать @RepositoryRestController для пользовательских конечных точек одного и того же ресурса, это будет использовать ту же самую Spring Data REST цепь и ее конфигурацию, как тот, который вы использовали в ConfigureJacksonObjectMapper, иначе ObjectMapper видна только Spring Data REST.

Если вы хотите иметь @RestController и использовать тот же ObjectMapper для обоих - вам нужно иметь две конфигурации: один для Spring Data REST (как у вас уже есть), а другой для обычных контроллеров, так что просто зарегистрировать его в контексте Spring (например, , если вы используете Spring MVC, см. Customize the Jackson ObjectMapper).

 Смежные вопросы

  • Нет связанных вопросов^_^