2016-11-04 51 views
1

我为我的实体写了一个UnwrappingBeanSerializer。目前,这个序列化器是使用ConfigureJacksonObjectMapper如何为spring-data-rest和我的@RestController类写单个objectMapper

注册的。该序列化器对于从spring-data-rest生成的REST API工作正常。但是我为同一个实体定制了@RestController,但它不知道在spring-data-rest配置中注册的序列化程序。

我想序列化我的响应UnwrappingBeanSerializer在spring-data-rest APIs和我的自定义控制器。

如何实现这一目标?

我也在我的实体类上尝试过@JsonSerialize。但我无法创建unWrappingBeanSerializer豆与BeanSerializerBase

回答

1

定期@RestControllerSpring 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)。

相关问题