私はSpringブートアプリケーションをTomcat 8にデプロイしました。アプリケーションが起動すると、Spring Autowiresがいくつかの依存関係を持つバックグラウンドでワーカースレッドを開始します。現在、私は、この持っている:私のドッカーテスト環境でSpringブート - デプロイ時にバックグラウンドスレッドを開始する最も良い方法
@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();
}
を、これはうまく動作します - しかし、私はTomcatを8での私のLinux(Debianのジェシー、ジャワ8)ホストにこれを展開するとき、私は「開始加入者スレッド」を見ることはありませんメッセージ(スレッドは開始されていません)。
あなたはhttp://docs.spring.io/spring-boot/docs/current/apiのJavadocを読みました/org/springframework/boot/context/web/SpringBootServletInitializer.html - なぜ 'main'メソッドがあるのか分かりません。 –
したがって、Tomcatを使わずにスタンドアロンサーバーとしても実行できます。 – Gandalf
と '' tomcat'環境でこれを 'main'と呼んでいるのは何ですか? –