我定义了以下Spring Boot应用程序:
@SpringBootApplication
public class Application implements CommandLineRunner {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(WebApplicationType.NONE).run(args);
}
public void run(String... args) throws Exception {
Thread.currentThread().join();
}
}
我也有一组工作程序(即可以是实现Runnable的类).他们应该无限期地奔跑.
运行它们的“春季方式”是什么? (并且自动执行,而无需明确知道它们)
谢谢
解决方法:
您可以(1)用@Component注释实现Runnable的类,以便Spring可以找到它们.然后,您可以(2)用@Service编写带有@Autowired列表的WorkManager,该列表将由(1)中所有类的列表实例进行初始化.并且可以(3)在WorkManager中编写一个@PostConstruct方法,该方法将遍历该Runnable列表,然后将每个传递给TaskExecutor来运行…