sql >> データベース >  >> NoSQL >> MongoDB

スプリングブートは、mongo-java-drivermaven依存関係を追加するときにmongoに接続しようとします

    私が一文で答えなければならない場合、これはSpringbootが意見を述べているためです。 AutoConfigurationを介してpomにmongoの依存関係があることに気付くとすぐに、mongoへの接続を試みます。 クラス。

    デフォルトの動作をオーバーライドして、SpringbootにMongoAutoConfigurationを実行しないように指示する場合は、この方法で実行できます

    @SpringBootApplication(exclude=MongoAutoConfiguration.class)
    public class YourMainApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(TestApplication.class, args);
        }
    }
    

    または、プロパティファイルのこの行でそれを行うことができます

    spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
    

    上記のいずれかを実行すると、(テストだけでなく)アプリケーションからMongoAutoconfigurationが除外されます。つまり、アプリケーションを起動すると、mongoにアクセスできなくなります(これが必要な場合)。

    SpringbootTest以降 アノテーションはアプリケーションのコテキスト全体をロードし、このメインアプリケーションクラスを探します。一部の自動構成を除外している場合は、テストでも除外されます。したがって、mongoの問題に接続することはできません。

    テストでのみこの自動構成を除外したい場合(アプリケーションの実行中に何も変更されないようにするため)、この方法で行うことができます

    @TestPropertySource(properties=
    {"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration"})
    @SpringBootTest
    public class GreetingControllerTests {...}
    



    1. MongoDBがクエリに非常に類似している(正確ではない)複合インデックスを使用できないのはなぜですか?

    2. 'mongoimport'の取得は、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。ファイルからデータをインポートしようとするとき

    3. MongoDB:パスで見つかった位置(つまり'$')要素が多すぎます

    4. django-nonrelとmongodbを使用してカスタムクエリを作成する方法