0

ドキュメントを見ましたが、mongoDBのカスタムタイプコンバーターを追加する方法が見つかりませんでした。どうすればそれができますか?

4

1 に答える 1

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. 結果jarに配置する次のリソースファイルを作成します。

META-INF / services / org / apache / camel / TypeConverter

そして、このファイルにコンバータークラスをリストします。

com.acme.converters.CustomConverter

このファイルは、Camelが独自のコンバーターを自動検出するのに役立ちます。

また、以下を確認することもできます。

  • META-INF/services/org/apache/camel/TypeConvertercamel-mongodb-xxxjarで、デフォルトのコンバーターがどのように定義されているかを確認します
  • org.apache.camel.impl.converter.AnnotationTypeConverterLoaderコンバータのロードロジックをチェックするクラス
于 2012-11-04T13:42:35.080 に答える