Запланированная работа Spring без создания экземпляра

#java #spring #scheduled-tasks #spring-scheduled

#java #весна #запланированные задачи #spring-запланированный

Вопрос:

Я читаю код, и он использует Spring по расписанию

 @Component
public class TaskWebSocketClient {

    @Scheduled(fixedDelay = 20000, initialDelay = 10000) 
    void start() {
        try {
            WebSocketPush.start();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}
  

Я использую поиск кода Visual Studio и слово «TaskWebSocketCliente»
больше никогда не использовался. Таким образом, класс «TaskWebSocketClient» никогда не создавался, но при отладке я решаю, что @Scheduled работает. Итак, как код может запускать запланированное для класса, экземпляр которого никогда не создавался?

Комментарии:

1. @Component делает его управляемым компонентом Spring, например, Spring framework создает экземпляр экземпляра и управляет его жизненным циклом.

2. Но слово «TaskWebSocketCliente» никогда не использовалось в коде. Не нужно ли использовать @Autowired TaskWebSocketClient или ApplicationContext.getBean(TaskWebSocketClient .class) хотя бы один раз, чтобы использовать запланированный метод?

3. От этого больше ничего не зависит, и это нормально. @Scheduled, управляемый Spring, запускает метод.

4. Итак, если у меня есть несколько запланированных методов, все они запускаются автоматически? Я подумал, что мне нужно создать экземпляр класса и выполнить метод для инициализации моего запланированного метода