MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

A inicialização do Spring tenta se conectar ao mongo ao adicionar a dependência do maven mongo-java-driver


Se eu tiver que responder em uma frase, é porque Springboot é Opinião. Ele tentará se conectar ao mongo assim que perceber a dependência do mongo em seu pom através de AutoConfiguration Aulas.

Se você quiser substituir o comportamento padrão e dizer ao Springboot para não fazer o MongoAutoConfiguration, você pode fazer dessa maneira
@SpringBootApplication(exclude=MongoAutoConfiguration.class)
public class YourMainApplication {

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

ou você pode fazer isso com esta linha em seu arquivo de propriedades
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration

Se você fizer qualquer um dos itens acima, ele excluirá o MongoAutoconfiguration do seu aplicativo (não apenas dos seus testes). O que significa que quando você inicia seu aplicativo, você não tem acesso ao mongo (se é isso que você deseja).

Desde SpringbootTest anotação carrega todo o cotexto da aplicação, ela procura por esta classe Main Application. Se você tiver algumas Autoconfigurações excluídas, elas serão excluídas, mesmo em seus testes. Portanto, você não teria o problema de conexão com o mongo.

Se você deseja excluir esta Autoconfiguração apenas em testes (para que durante a execução de sua aplicação nada seja alterado), você pode fazê-lo desta forma
@TestPropertySource(properties=
{"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration"})
@SpringBootTest
public class GreetingControllerTests {...}