Haz todo lo posible por comprender el código de forma correcta antes de aplicarlo a tu trabajo si tdeseas aportar algo puedes decirlo en los comentarios.
Solución:
No se llama al método principal cuando se implementa la aplicación en un servidor de aplicaciones no incorporado. La forma más sencilla de iniciar un hilo es hacerlo desde el constructor de beans. También es una buena idea limpiar el hilo cuando el contexto está cerrado, por ejemplo:
@Component
class EventSubscriber implements DisposableBean, Runnable
private Thread thread;
private volatile boolean someCondition;
EventSubscriber()
this.thread = new Thread(this);
this.thread.start();
@Override
public void run()
while(someCondition)
doStuff();
@Override
public void destroy()
someCondition = false;
Podrías tener un frijol que implementa ApplicationListener
Es onApplicationEvent
se llamará simplemente inicie su hilo allí si aún no se ha iniciado. Creo que quieres el ApplicationReadyEvent por cierto.
Editar
¿Cómo agregar un enlace al evento de inicialización del contexto de la aplicación?
@Component
public class FooBar implements ApplicationListener
Thread t = new Thread();
@Override
public void onApplicationEvent(ContextRefreshedEvent event)
if (!t.isAlive())
t.start();
Comentarios y puntuaciones
Si piensas que te ha sido de ayuda nuestro artículo, te agradeceríamos que lo compartas con otros entusiastas de la programación de este modo nos ayudas a extender nuestra información.