不要自己弄乱线程。Spring(还有普通的Java)对此有一个很好的抽象。
首先
TaskExecutor在您的配置中创建该类型的Bean
@Beanpublic TaskExecutor taskExecutor() { return new SimpleAsyncTaskExecutor(); // Or use another one of your liking}然后创建一个
CommandLineRunner(尽管
ApplicationListener<ContextRefreshedEvent>也可以)计划您的任务。
@Beanpublic CommandLineRunner schedulingRunner(TaskExecutor executor) { return new CommandLineRunner() { public void run(String... args) throws Exception { executor.execute(new SimularProfesor()); } }}当然,您也可以在Spring之前安排自己的课程。
这样做的好处是,Spring还将为您清理线程,而您不必自己考虑。我在
CommandLineRunner这里使用了a
,因为它将在所有bean都初始化之后执行。



