Spring Boot - лучший способ запустить фоновый поток при развертывании
У меня есть приложение Spring Boot, развернутое в Tomcat 8. При запуске приложения я хочу запустить рабочий поток в фоновом режиме, который Spring Autowires с некоторыми зависимостями. В настоящее время у меня есть это:
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan
public class MyServer extends SpringBootServletInitializer {
public static void main(String[] args) {
log.info("Starting application");
ApplicationContext ctx = SpringApplication.run(MyServer.class, args);
Thread subscriber = new Thread(ctx.getBean(EventSubscriber.class));
log.info("Starting Subscriber Thread");
subscriber.start();
}
В моей тестовой среде Docker это работает просто отлично, но когда я развертываю это на своем хосте Linux (Debian Jessie, Java 8) в Tomcat 8, я никогда не вижу сообщение «Starting Subscriber Thread» (и поток не запускается).