Saltar al contenido

Cómo cerrar una aplicación de línea de comandos Spring Boot

Solución:

Encontré una solución. Puedes usar esto:

public static void main(String[] args) {
    SpringApplication.run(RsscollectorApplication.class, args).close();
    System.out.println("done");
}

Solo usa .close() en marcha.

La respuesta depende de qué es lo que todavía funciona. Probablemente pueda averiguarlo con un volcado de hilo (por ejemplo, usando jstack). Pero si es algo que fue iniciado por Spring, debería poder usar ConfigurableApplicationContext.close() para detener la aplicación en su método main () (o en el CommandLineRunner).

Esta es una combinación de la respuesta de @EliuX con @Quan Vo one. ¡Gracias a los dos!

La principal diferencia es que paso el código de respuesta SpringApplication.exit (contexto) como un parámetro al System.exit (), por lo que si hay un error al cerrar el contexto de Spring, lo notará.

SpringApplication.exit () cerrará el contexto de Spring.

System.exit () cerrará la aplicación.

@Component
public class OneTimeRunner implements CommandLineRunner {

    @Autowired
    private ConfigurableApplicationContext context;

    @Override
    public void run(String... args) throws Exception { 
       System.exit(SpringApplication.exit(context));
    }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *