0

我在 Spring-XML 中定义了一个骆驼路线,我正在使用 marshall 和 unmarshall 在 JSON 和我的域对象之间进行转换。一切都很好,但这是我的问题:

我在 bean 上调用一个方法作为我的路由的一部分,它将我的域对象的 JSON 表示保存到存储库。此方法需要访问我的域对象上的某些属性才能将其保存在正确的位置,并且还需要 JSON 表示来保存;所以要么我:

1)将a标头设置为我的域对象的值,然后将对象编组到我的主体中(我的bean现在可以访问这两种表示形式)

2) 将域对象设置为主体并将我的 bean 编组回 JSON

选项 1 是我正在做的,但似乎很浪费,因为我存储了对象的两个表示,我可以做选项 2 并在我的 bean 中重用编组逻辑吗?

4

1 回答 1

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");

这应该为您获取数据格式...

于 2013-05-16T10:02:39.817 回答