Рубрики
Без рубрики

Аннотации весеннего планирования

Изучите наиболее распространенные аннотации весеннего планирования.

Автор оригинала: Attila Fejér.

1. Обзор

Когда однопоточного выполнения недостаточно, мы можем использовать аннотации из пакета org.springframework.scheduling.annotation|/.

В этом кратком руководстве мы рассмотрим аннотации весеннего планирования.

2. @EnableAsync

С помощью этой аннотации мы можем включить асинхронную функциональность весной.

Мы должны использовать его с @Configuration :

@Configuration
@EnableAsync
class VehicleFactoryConfig {}

Теперь, когда мы включили асинхронные вызовы, мы можем использовать @Async для определения методов, поддерживающих его.

3. @EnableScheduling

С помощью этой аннотации мы можем включить планирование в приложении.

Мы также должны использовать его в сочетании с @Configuration :

@Configuration
@EnableScheduling
class VehicleFactoryConfig {}

В результате теперь мы можем периодически запускать методы с помощью @Scheduled .

4. @Async

Мы можем определить методы , которые мы хотим выполнить в другом потоке , следовательно, запускать их асинхронно.

Для этого мы можем аннотировать метод с помощью @Async :

@Async
void repairCar() {
    // ...
}

Если мы применим эту аннотацию к классу, то все методы будут вызываться асинхронно.

Обратите внимание, что нам нужно включить асинхронные вызовы для работы этой аннотации с конфигурацией @EnableAsync или XML.

Более подробную информацию о @Async можно найти в этой статье .

5. @По расписанию

Если нам нужен метод для периодического выполнения , мы можем использовать эту аннотацию:

@Scheduled(fixedRate = 10000)
void checkVehicle() {
    // ...
}

Мы можем использовать его для выполнения метода с фиксированными интервалами , или мы можем настроить его с помощью cron-подобных выражений .

@Scheduled использует функцию повторяющихся аннотаций Java 8, что означает, что мы можем пометить метод с его помощью несколько раз:

@Scheduled(fixedRate = 10000)
@Scheduled(cron = "0 * * * * MON-FRI")
void checkVehicle() {
    // ...
}

Обратите внимание, что метод, аннотированный @Scheduled , должен иметь тип возврата void .

Кроме того, мы должны включить планирование для этой аннотации, чтобы она работала, например, с @EnableScheduling или конфигурацией XML.

Для получения дополнительной информации о планировании прочитайте эту статью .

6. @Расписания

Мы можем использовать эту аннотацию для указания нескольких @Запланированных правил:

@Schedules({ 
  @Scheduled(fixedRate = 10000), 
  @Scheduled(cron = "0 * * * * MON-FRI")
})
void checkVehicle() {
    // ...
}

Обратите внимание, что начиная с Java 8 мы можем добиться того же с помощью функции повторяющихся аннотаций, как описано выше.

7. Заключение

В этой статье мы рассмотрели обзор наиболее распространенных аннотаций весеннего планирования.

Как обычно, примеры доступны на GitHub .