sql >> Databáze >  >> NoSQL >> MongoDB

Spring boot se pokouší připojit k mongo při přidávání závislosti mongo-java-driver maven

Pokud mám odpovědět jednou větou, je to proto, že Springboot je Opinionated. Pokusí se připojit k mongo, jakmile zjistí závislost mongo ve vašem pomu prostřednictvím AutoConfiguration třídy.

Pokud chcete přepsat výchozí chování a říct Springbootu, aby neprováděl MongoAutoConfiguration, můžete to udělat tímto způsobem

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

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

nebo to můžete udělat pomocí tohoto řádku ve vašem souboru vlastností

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

Pokud uděláte jedno z výše uvedených, vyloučí to MongoAutoconfiguration z vaší aplikace (nejen z vašich testů). Což znamená, že když spustíte aplikaci, nemáte přístup k mongo (pokud si to přejete).

Od SpringbootTest anotace načte celý kontext aplikace, hledá tuto třídu Main Application. Pokud máte některé automatické konfigurace vyloučené, vyloučí se, a to i ve vašich testech. Takže nebudete mít problém s připojením k mongo.

Pokud chcete tuto automatickou konfiguraci vyloučit pouze v testech (aby se při běhu aplikace nic nezměnilo), můžete to udělat takto

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



  1. Push prvek do pole v mangoose

  2. vyhledávání podle ObjectId v mongodb pomocí pymongo

  3. Určení nejlepší architektury pro nasazení klastru MongoDB

  4. jak zkontrolovat, zda je mongodb aktivní a připravený přijímat připojení ze skriptu bash?