如何为 spring-data-rest 和我的@RestController class 编写单个 objectMapper
How to write single objectMapper for spring-data-rest and to my @RestController class
我为我的实体写了一个 UnwrappingBeanSerializer。目前这个序列化程序是使用 ConfigureJacksonObjectMapper
注册的
此序列化程序适用于从 spring-data-rest 生成的 REST API。但是我有一个针对同一个实体的自定义 @RestController
,但是它不知道在 spring-data-rest 配置中注册的序列化程序。
我想在 spring-data-rest API 和我的自定义控制器中使用 UnwrappingBeanSerializer
序列化我的响应。
如何实现?
我也在我的实体 class 上尝试使用 @JsonSerialize
。但是我无法使用 BeanSerializerBase
为 unWrappingBeanSerializer
创建 bean
常规 @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)。
我为我的实体写了一个 UnwrappingBeanSerializer。目前这个序列化程序是使用 ConfigureJacksonObjectMapper
注册的此序列化程序适用于从 spring-data-rest 生成的 REST API。但是我有一个针对同一个实体的自定义 @RestController
,但是它不知道在 spring-data-rest 配置中注册的序列化程序。
我想在 spring-data-rest API 和我的自定义控制器中使用 UnwrappingBeanSerializer
序列化我的响应。
如何实现?
我也在我的实体 class 上尝试使用 @JsonSerialize
。但是我无法使用 BeanSerializerBase
unWrappingBeanSerializer
创建 bean
常规 @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)。