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();
}
를이 잘 작동합니다 -하지만 난 톰캣 8 내 리눅스 (데비안 제시, 자바 8) 호스트에이를 배포 할 때 나는 "시작 가입자 스레드"을 볼 수 없습니다 메시지 (및 스레드가 시작되지 않음).
당신이 http://docs.spring.io/spring-boot/docs/current/api에 대한 JavaDoc을 읽었다 /org/springframework/boot/context/web/SpringBootServletInitializer.html - 왜'main' 메쏘드를 사용하는지 이해하지 못합니다. –
그래서 Tomcat없이 독립 실행 형 서버로도 실행할 수 있습니다. – Gandalf
그리고'바람둥이 '환경에서이'main'을 무엇이라고 부릅니까? –