Estoy importando un frasco a través de la dependencia maven, el frasco se ejecuta un bucle infinito. Quiero resolver algunas otras dependencias totalmente primero antes de cargar el frasco.
Quiero cargar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Esperar hasta que reciba en mis registros
Exposing 2 endpoint(s) beneath base path '/actuator'
Tomcat started on port(s): 1339 (http) with context path ''
A continuación, cargue mi dependencia frasco.
Lo que pasa es que empezó a cargarlos dependencias continuación, se ve atrapado en un bucle infinito en el frasco y no completa.
Gracias
El frasco no se ejecuta un bucle infinito, el frasco es un montón de fuentes binarias (y posiblemente de los recursos, como jsons, archivos de propiedades, XMLs, etc.) en el interior del artefacto.
Así que el trabajo de maven como una herramienta de construcción es preparar el artefacto. Una vez que el artefacto se construye el experto se hace, no se puede influir / alter cosas más.
Ahora, ya que tiene un marco de tiempo de ejecución como la primavera - que puede ejecutar algunos granos dentro de los frascos en condiciones:
- Cargar el grano de una manera perezosa (sólo cuando el método del bean será llamado primero)
- Ejecutar métodos de granos de forma asincrónica (mediante el uso de
@Async
anotación) - Cargar granos solamente cuando se especifica algún perfil (u otra condición como la propiedad).
Todas estas son las maneras de personalizar el comportamiento de la aplicación en el tiempo de ejecución con la ayuda de la primavera, pero de nuevo, técnicamente experto no tiene nada que hacer aquí.
Así que con el fin de
evitar bucle infinito dentro del tarro
Usted puede averiguar qué causa exactamente el frijol bucle infinito (de nuevo, no es un 'tarro' en general, su poco de frijol específica)
Uso @Async
anotación o definir su propio grupo de subprocesos y ejecutar el método del grano que hace que el bucle de allí ( @Async
es más manera de primavera-ish para hacerlo)
En cualquier caso, si se carga el grano de la primavera, tiene un hilo para poblar el contexto de aplicación (que es para cargar todo el mecanismo de inyección de frijoles y el uso de dependencia). Así que si este tema se atasca debido a alguna causa frijol bucle infinito durante su inicialización (constructor o después de la construcción del método) - toda la aplicación será atrapado.