2012-10-20 89 views

回答

2

首先我認爲fromAnyObjectToDBObject默認轉換器可以解決你的大部分情況。它使用Jackson庫,您只需使用正確的註釋標記自定義類。

無論如何,如果你仍然需要自定義轉換器,應執行以下步驟:

  1. 白轉換邏輯和你的類和轉換方法與org.apache.camel.Converter註釋:

    package com.acme.converters; 
    
    @Converter 
    public class CustomConverter { 
    
        @Converter 
        public static DBObject fromCustomToDBObject(CustomType object) { 
        // conversion logic 
        } 
    
    } 
    
  2. 創建將以下資源文件放入結果瓶中:

META-INF /服務/組織/阿帕奇/駱駝/ TypeConverter的

而在這個文件中列出您的轉換器類:

com.acme.converters.CustomConverter

該文件將幫助駱駝自動發現您自己的轉換器。

您還可以看看:

  • META-INF/services/org/apache/camel/TypeConverter駱駝的mongodb-xxxjar,看看如何轉換默認定義
  • org.apache.camel.impl.converter.AnnotationTypeConverterLoader類檢查轉換器加載邏輯
+0

謝謝!所以它是普通的駱駝轉換器... – redben

+1

BTW爲傑克遜註釋有時類不是你的(例如joda-time,util.Currency ..等等),所以你必須創建自己的轉換器:) – redben

+0

好點,贊同。 – udalmik