Spring 与 Joda DateTime 集成的 ObjectToMapTransformer
Spring Integration's ObjectToMapTransformer with Joda DateTime
ObjectToMapTransformer transformer = new ObjectToMapTransformer();
transformer.setShouldFlattenKeys(true);
如何使用此转换器将 Joda DateTime 保存为字符串表示形式?
我的解决方案是复制ObjectToMapTransformer 的源代码,然后创建您自己的ObjectToMapTransformer 和Jackson2JsonObjectMapper。
在ObjectToMapTransformer中,添加一个getter函数来获取私有成员jsonObjectMapper。
在Jackson2JsonObjectMapper中,添加一个getter函数来获取私有成员objectMapper。
使用自己的Jackson2JsonObjectMapper在ObjectToMapTransformer中创建jsonObjectMapper
基本上,替换
private final JsonObjectMapper<?, ?> jsonObjectMapper = JsonObjectMapperProvider.newInstance();
有
private final JsonObjectMapper<?, ?> jsonObjectMapper = new Jackson2JsonObjectMapper();
记得导入您自己创建的 类 而不是 org.springframework 导入
这样就可以获取到ObjectMapper的实例,然后配置ObjectMapper
JsonObjectMapper<?, ?> jsonObjectMapper = transformer.getJsonObjectMapper();
if(jsonObjectMapper instanceof Jackson2JsonObjectMapper){
System.out.println("Configuring ObjectToMapTransformer Jackson2JsonObjectMapper");
Jackson2JsonObjectMapper jackson2JsonObjectMapper = (Jackson2JsonObjectMapper)jsonObjectMapper;
ObjectMapper mapper = jackson2JsonObjectMapper.getObjectMapper();
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
mapper.registerModule(new JodaModule());
}
ObjectToMapTransformer transformer = new ObjectToMapTransformer();
transformer.setShouldFlattenKeys(true);
如何使用此转换器将 Joda DateTime 保存为字符串表示形式?
我的解决方案是复制ObjectToMapTransformer 的源代码,然后创建您自己的ObjectToMapTransformer 和Jackson2JsonObjectMapper。
在ObjectToMapTransformer中,添加一个getter函数来获取私有成员jsonObjectMapper。
在Jackson2JsonObjectMapper中,添加一个getter函数来获取私有成员objectMapper。
使用自己的Jackson2JsonObjectMapper在ObjectToMapTransformer中创建jsonObjectMapper
基本上,替换
private final JsonObjectMapper<?, ?> jsonObjectMapper = JsonObjectMapperProvider.newInstance();
有
private final JsonObjectMapper<?, ?> jsonObjectMapper = new Jackson2JsonObjectMapper();
记得导入您自己创建的 类 而不是 org.springframework 导入
这样就可以获取到ObjectMapper的实例,然后配置ObjectMapper
JsonObjectMapper<?, ?> jsonObjectMapper = transformer.getJsonObjectMapper();
if(jsonObjectMapper instanceof Jackson2JsonObjectMapper){
System.out.println("Configuring ObjectToMapTransformer Jackson2JsonObjectMapper");
Jackson2JsonObjectMapper jackson2JsonObjectMapper = (Jackson2JsonObjectMapper)jsonObjectMapper;
ObjectMapper mapper = jackson2JsonObjectMapper.getObjectMapper();
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
mapper.registerModule(new JodaModule());
}