我有一个在Spring-XML中定义的camel路由,我正在使用marshall和unmarshall在JSON和我的域对象之间进行转换。一切都很好,但这是我的问题:
我正在调用bean上的方法作为我的路由的一部分,它将我的域对象的JSON表示保存到存储库。此方法需要访问我的域对象上的某些属性才能将其保存在正确的位置,并且还需要JSON表示来保存;所以要么我:
1)将a标题设置为我的域对象的值,然后将对象编组到我的主体中(我的bean现在可以访问这两个表示)
2)将域对象设置为正文并让我的bean将其编组回JSON
选项1是我正在做的但是看起来很浪费,因为我存储了对象的两个表示,我可以选择2并在我的bean中重用编组逻辑吗?
答案 0 :(得分:0)
为什么不呢?如果你在Spring中定义了ObjectMapper bean,你可以在你的方法中使用它来使用它来编组java对象。
编辑:在下面添加 -
ApplicationContext ac = new ClassPathXmlApplicationContext("META-INF/spring/camel-context.xml");
CamelContext ctx = (CamelContext) ac.getBean("camel");
ModelCamelContext Mctx = (ModelCamelContext) ctx;
JsonDataFormat fmt = (JsonDataFormat) Mctx.getDataFormats().get("jack");
这应该会获取dataformat ...