#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. Итак, если у меня есть несколько запланированных методов, все они запускаются автоматически? Я подумал, что мне нужно создать экземпляр класса и выполнить метод для инициализации моего запланированного метода