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

Spring boot forsøger at oprette forbindelse til mongo, når der tilføjes mongo-java-driver maven-afhængighed

Hvis jeg skal svare i én sætning, er det fordi Springboot er Opinionated. Det vil forsøge at oprette forbindelse til mongo, så snart det bemærker mongo-afhængighed i din pom gennem AutoConfiguration klasser.

Hvis du vil tilsidesætte standardadfærden og fortælle Springboot ikke at udføre MongoAutoConfiguration, kan du gøre det på denne måde

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

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

eller du kan gøre det med denne linje i din egenskabsfil

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

Hvis du gør et af ovenstående, vil det udelukke MongoAutoconfiguration fra din applikation (ikke kun fra dine tests). Hvilket betyder, at når du starter din ansøgning, så har du ikke adgang til mongo (hvis det er det, du ønsker).

Siden SpringbootTest annotation indlæser hele applikationens cotext, den leder efter denne hovedapplikationsklasse. Hvis du har nogle autokonfigurationer udelukket, vil det ekskludere, selv i dine tests. Så du ville ikke have forbindelse til mongo-problemet.

Hvis du kun ønsker at udelukke denne autokonfiguration i test (så at intet ændres under kørsel af din applikation), kan du gøre det på denne måde

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



  1. Sådan dropper du indeks ved hjælp af Mongoose

  2. MongoDB-tilgange til lagring af store mængder metrics/analysedata

  3. Hvad er navnekonventioner for MongoDB?

  4. MongoDB:hvorfor returnerer find og findOne kun det sidste array-element?