He escrito un código para probar la integración con mongoDB. Encuentre el enlace al método principal para ejecutar esta aplicación Spring Boot a continuación,
Por lo que he leído, una aplicación debe contener cualquiera de las configuraciones de la siguiente URL para declarar cómo las aplicaciones administran el contexto,
No he usado ninguno de esos contextos. Sin embargo, mi aplicación funciona bien y puedo ejecutarla sin problemas. ¿Me estoy perdiendo de algo? ¿Puede ayudarme con la información de cómo mi aplicación puede iniciar y administrar el contexto/dependencias automáticamente?
Gracias por adelantado
@SpringBootApplication es equivalente a @Configuration , @EnableAutoConfiguration y @ComponentScan . Consideremos por qué su aplicación funciona sin ninguna de estas tres anotaciones.
Por qué funciona sin @Configuration :
Cuando Spring escanee paquetes, encontrará todas las clases marcadas con @Configuration y las usará como parte de la configuración. Pero en la siguiente línea pasó manualmente UserManagementApplication como fuente de configuración:
SpringApplication.run(UserManagementApplication.class, args); Entonces Spring no necesita encontrar esta clase por escaneo. Por lo tanto no es necesario marcarlo con @Configuration .
Por qué funciona sin @ComponentScan :
La clase UserManagementApplication tiene @ImportResource("classpath:spring/application-context.xml") . Eso significa que el archivo spring/application-context.xml se incluirá en la configuración. Y este archivo contiene la siguiente línea:
<context:component-scan base-package="com.siva.*" />Por lo tanto, no necesita usar la anotación para escanear paquetes, porque ya lo declaró en el archivo xml.
Por qué funciona sin @EnableAutoConfiguration :
Esta anotación le permite a Spring intentar adivinar y configurar los componentes automáticamente. Por ejemplo, si incluye la siguiente dependencia en su build.gradle :
dependencies { compile 'org.springframework.boot:spring-boot-starter-data-mongodb' } Spring configura todos los componentes necesarios para trabajar con MongoDB automáticamente. Y todo lo que necesita es especificar host y usuario/contraseña en el archivo aplication.proprties .
Pero prefirió declarar todos los beans necesarios manualmente en el archivo spring/application-context.xml . Por lo tanto, simplemente no necesita la anotación @EnableAutoConfiguration en absoluto.