標準の MongoDB Java ドライバーを使用して、独自の DAO をロールしています。すべての DAO が同じ Mongo インスタンスを共有できることは承知していますが、同じデータベースにアクセスするすべての DAO が同じ DB オブジェクトを共有する必要がありますか、それとも新しい DB オブジェクトを要求する正当な理由がありますか?
ありがとう!
標準の MongoDB Java ドライバーを使用して、独自の DAO をロールしています。すべての DAO が同じ Mongo インスタンスを共有できることは承知していますが、同じデータベースにアクセスするすべての DAO が同じ DB オブジェクトを共有する必要がありますか、それとも新しい DB オブジェクトを要求する正当な理由がありますか?
ありがとう!
実用的であることが判明した場合は、Mongo クラス、DB クラス、および DBCollection クラスの共有インスタンスを使用できます。デザインの観点からするかどうかはあなた次第です。Mongoインスタンスは比較的重いため(独自のスレッドプールなどを持っているため)、間違いなくシングルトンとして使用します.
Mongo オブジェクトを共有する「正当な理由」は、組み込みの接続プールです。Mongo オブジェクトのインスタンスを DAO 間で共有することが実際的でない場合は、(私の意見では) 新しいインスタンスを作成する正当な理由になります。実用的である場合は、共有する必要があります。
.close()
Mongo インスタンスを使い終わったら、接続を開いたままにしないようにするために を使用する必要があることに注意してください。