0
私はスレッドである自分のプロジェクトにデータベースリスナー(DatabaseChangeListener
)を持っています。私はそのような私の春ブーツメインアプリケーションでこのスレッドを実行します。Springbootとスレッドの問題
@SpringBootApplication
public class PocCamelRoutesManagerBootApplication {
public static void main(String[] args) {
SpringApplication.run(PocCamelRoutesManagerBootApplication.class, args);
}
@Autowired
private DataSource dataSource;
@Autowired
private RouteRepository routeRepository;
@Bean
public CommandLineRunner schedulingRunner(TaskExecutor executor) {
return args -> executor.execute(new DatabaseChangeListener(dataSource, routeRepository));
}
@Bean
public TaskExecutor taskExecutor() {
return new SimpleAsyncTaskExecutor();
}
}
- それは動作しますが、それは(私が
DatabaseChangeListener d = new DatabaseChangeListener(); d.start()
を使用していたとき、それは働いていた)もう変更されませんでした、それはAutowired
依存関係からか? - アプリケーションを(JBoss EAPから)アンデプロイしても、スレッドは引き続き実行されます。私はそれをやめなければならないのですか?
スレッドがJVMではなく、アプリケーションに関連付けられている中で、以下の方法で、それを停止する必要があります。アプリケーションをアンデプロイすると、スレッドは引き続きJBOSS JVM上で実行されます。スレッドを停止するには、JBOSS JVMをシャットダウンする必要があります。 – duffymo