и делать это автоматически, не зная их явно
Нет механизма для автоматического запуска некоторых Runnable
s из определенного места.Вам нужно найти способ сообщить Spring об этих классах.
Три распространенных сценария:
- Выполнить некоторый код во время запуска приложения:
ApplicationRunner
иCommandLineRunner
.
Вы либо собираете Runnable
с и заключаете их в [Application|CommandLine]Runner
, который должен быть бобом (например, @Bean
, @Component
,и т. д.) или сделать каждый Runnable
отдельным [Application|CommandLine]Runner
.
Выполнить некоторый код в определенный момент времени:
TaskExecutor
.
Вы вводите TaskExecutor
и даете ему ранее набранные Runnable
с.
Несколько раз выполнить код:
TaskScheduler
.
Вы вводите TaskScheduler
и даете ему ранее набранные Runnable
с, а также триггер .
Подробнее: Выполнение и планирование задач