Me gustaría ejecutar un servicio Spring Boot sin ninguna de las cosas relacionadas con el controlador. Me gustaría que solo ejecute una tarea programada cada hora y funcione si es necesario. Quiero usar Spring Boot, porque ya sé cómo configurar el ORM de Hibernate y estoy reutilizando muchos de los mismos repositorios que otro servicio de Spring Boot. Entonces, inicié un nuevo proyecto Spring Boot y omití el paquete start-web.
El principal problema con el que me encuentro es que, a pesar de tener configurada una tarea programada, el servicio se inicia y se cierra inmediatamente sin ejecutar la tarea programada. En mi cabeza, imaginé el servicio simplemente sentado allí, ejecutándose, esperando el momento de activar el trabajo programado que he configurado y simplemente durmiendo hasta entonces. ¿Mis expectativas son malas o simplemente lo tengo mal configurado?
He resuelto el problema. Fue un problema de configuración que provocó que la aplicación Spring Boot no reconociera la presencia de los valores de configuración requeridos en el archivo application.properties.
Puede eliminar spring-boot-starter-web de sus dependencias o en su clase principal puede configurar SpringApplicationBuilder para que no incluya el servidor web.
new SpringApplicationBuilder(YourApplication.class) .web(WebApplicationType.NONE) .run(args);Use @EnableScheduling en la clase principal y la aplicación no se cerrará.