我为我的实体写了一个UnwrappingBeanSerializer。目前,此序列化程序已使用ConfigureJacksonObjectMapper
注册此序列化程序适用于从spring-data-rest生成的REST API。但我对同一个实体有一个自定义@RestController
,但它不知道在spring-data-rest配置中注册的序列化程序。
我想在spring-data-rest API和我的自定义控制器中使用UnwrappingBeanSerializer
序列化我的响应。
如何实现这一目标?
我还在我的实体类上尝试了@JsonSerialize
。但是我无法使用unWrappingBeanSerializer
BeanSerializerBase
创建bean
答案 0 :(得分:1)
常规@RestController
和Spring Data REST
控制器具有不同的流和配置。如果您使用的是Spring Data REST
,则最好将@RepositoryRestController
用于同一资源的自定义端点,这将使用相同的Spring Data REST
链及其配置,就像您在{中使用的那个{3}},否则ObjectMapper
仅对Spring Data REST
可见。
如果你想拥有@RestController
并为两者使用相同的ObjectMapper
,你需要有两个配置:一个用于Spring Data REST
(就像你已经拥有的那样)而另一个用于常规控制器,所以只需在Spring上下文中注册它(例如,如果您使用的是Spring MVC,请参阅ConfigureJacksonObjectMapper)。