MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Spring boot próbuje połączyć się z mongo po dodaniu zależności maven mongo-java-driver

Jeśli mam odpowiedzieć jednym zdaniem, to dlatego, że Springboot jest opiniowany. Będzie próbował połączyć się z mongo, gdy tylko zauważy zależność mongo w twoim pom przez AutoConfiguration zajęcia.

Jeśli chcesz zastąpić domyślne zachowanie i powiedzieć Springboot, aby nie robił MongoAutoConfiguration, możesz to zrobić w ten sposób

@SpringBootApplication(exclude=MongoAutoConfiguration.class)
public class YourMainApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }
}

lub możesz to zrobić za pomocą tego wiersza w pliku właściwości

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

Jeśli zrobisz jedną z powyższych czynności, MongoAutoconfiguration zostanie wykluczone z twojej aplikacji (nie tylko z twoich testów). Co oznacza, że ​​po uruchomieniu aplikacji nie masz dostępu do mongo (jeśli tego chcesz).

Od SpringbootTest adnotacja ładuje cały tekst aplikacji, szuka tej klasy aplikacji głównej. Jeśli masz wykluczone niektóre Autokonfiguracje, zostaną one wykluczone, nawet w twoich testach. Więc nie miałbyś problemu z połączeniem z mongo.

Jeśli chcesz wykluczyć tę Autokonfigurację tylko w testach (aby podczas uruchamiania aplikacji nic się nie zmieniło), możesz to zrobić w ten sposób

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pobieranie losowe z Mongo

  2. MongoDB:java.lang.IllegalStateException:stan powinien być:open

  3. Jak pogrupować według MongoDB

  4. Agregacja Pymongo - przekazywanie listy Pythona do agregacji

  5. Dodaj pole o rosnącej wartości w MongoDB Aggregation na podstawie warunku