MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Spring boot tenta di connettersi a mongo quando si aggiunge la dipendenza maven mongo-java-driver

Se devo rispondere in una frase, è perché Springboot è supponente. Proverà a connettersi a mongo non appena nota la dipendenza da mongo nel tuo pom tramite AutoConfiguration classi.

Se vuoi ignorare il comportamento predefinito e dire a Springboot di non eseguire MongoAutoConfiguration, puoi farlo in questo modo

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

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

oppure puoi farlo con questa riga nel tuo file delle proprietà

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

Se esegui una delle operazioni precedenti, escluderà MongoAutoconfiguration dalla tua applicazione (non solo dai tuoi test). Ciò significa che quando avvii la tua applicazione, non hai accesso a mongo (se questo è ciò che desideri).

Da SpringbootTest l'annotazione carica l'intero cotext dell'applicazione, cerca questa classe dell'applicazione principale. Se hai alcune Autoconfigurazioni escluse, verranno escluse, anche nei tuoi test. Quindi non avresti il ​​problema di connessione a mongo.

Se desideri escludere questa configurazione automatica solo nei test (in modo che durante l'esecuzione della tua applicazione non venga modificato nulla), puoi farlo in questo modo

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