Spring Boot:请求和响应的不同ObjectMapper实例

Dar*_*hta 6 java spring jackson spring-boot

我的春季启动应用程序中有以下控制器:

@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<ResponseDto<MyClass> process(@RequestBody RequestDto<MyClass> request){
    return null;
}
Run Code Online (Sandbox Code Playgroud)

MyClass有一个字段,让我们说'myField',我想要NamingStrategy对这个字段的请求和响应有不同的配置(这是因为我不想为一个字段创建一个新类).我已经配置ObjectMapper了如下实例:

@Bean
public ObjectMapper objectMapper(){
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setPropertyNamingStrategy(namingStrategy);
    return objectMapper;
}
Run Code Online (Sandbox Code Playgroud)

这将用于请求和响应(即反序列化和序列化),春季启动中是否有任何方法可以指示控制器使用不同的ObjectMapper实例?

kur*_*urt -1

一种肮脏的黑客:您可以为 MyClass 编写自定义序列化器和反序列化器,在那里您显式地使用两个单独的对象映射器,第一个用于序列化(用于响应),第二个用于反序列化(用于请求)。

但最好找到一种显式自定义 spring 对象映射器的方法。