sql >> Base de Datos >  >> NoSQL >> MongoDB

Spring boot intenta conectarse a mongo al agregar la dependencia maven de mongo-java-driver

Si tengo que responder en una oración, es porque Springboot es obstinado. Intentará conectarse a mongo tan pronto como note la dependencia de mongo en su pom a través de AutoConfiguration clases

Si desea anular el comportamiento predeterminado y decirle a Springboot que no realice MongoAutoConfiguration, puede hacerlo de esta manera

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

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

o puede hacerlo con esta línea en su archivo de propiedades

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

Si realiza cualquiera de las acciones anteriores, excluirá MongoAutoconfiguration de su aplicación (no solo de sus pruebas). Lo que significa que cuando inicia su aplicación, no tiene acceso a mongo (si esto es lo que desea).

Desde SpringbootTest La anotación carga todo el cotexto de la aplicación, busca esta clase de aplicación principal. Si tiene algunas configuraciones automáticas excluidas, se excluirán, incluso en sus pruebas. Por lo tanto, no tendría el problema de conexión a mongo.

Si desea excluir esta Autoconfiguración solo en las pruebas (para que mientras ejecuta su aplicación nada cambie), puede hacerlo de esta manera

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