MongoDBへの接続とカスタムコーデックを使用してMongoDBドキュメントとの間でドメイン固有のJava POJOをエンコード/デコードするJava webappがあります。接続URLは、環境変数を介してアプリケーションに提供されます。 URLにはオプションを含めることができますが、URL形式のドキュメントhttps://docs.mongodb.com/manual/reference/connection-string/にはURLにコーデックを指定することはできません。 だから私の自然な選択が私のコーデックでURIと新しいCodecRegistryからオプションを組み合わせることMongoClientOptionsビルダーを使用することです:JavaからのMongoDB接続:指定された接続のコーデックを構成する方法URI
MongoClientOptions optsWithCodecs = MongoClientOptions.builder(
mongoURI.getOptions()).codecRegistry(myCodecRegistry).build();
問題はMongoClientはURIとMongoClientOptionsを受け入れるコンストラクタを提供しないということである、取るコンストラクタがありますちょうどURI:
public MongoClient(final MongoClientURI uri) {
super(uri);
}
私は手動でMongoClientプライベートメソッドからいくつかのコードを複製するURIを解析して、オプションを受け入れ、他のコンストラクタのいずれかを使用します。 MongoClientをカスタムコーデックで構成するより良い方法を探したいと思います。 私はMongo Javaドライババージョン3.3.0を使用しています