Annotations de planification du printemps

Annotations du calendrier du printemps

1. Vue d'ensemble

Lorsque l’exécution à un seul thread ne suffit pas, nous pouvons utiliser les annotations du packageorg.springframework.scheduling.annotation.

Dans ce rapide didacticiel, nous allons explorer les annotations de planification Spring.

2. @EnableAsync

Avec cette annotation, nous pouvons activer la fonctionnalité asynchrone dans Spring.

Nous devons l'utiliser avec@Configuration:

@Configuration
@EnableAsync
class VehicleFactoryConfig {}

Maintenant que nous avons activé les appels asynchrones, nous pouvons utiliser@Async pour définir les méthodes qui le supportent.

3. @EnableScheduling

Avec cette annotation, nous pouvons activer la planification dans l'application.

Nous devons également l'utiliser en conjonction avec@Configuration:

@Configuration
@EnableScheduling
class VehicleFactoryConfig {}

En conséquence, nous pouvons maintenant exécuter des méthodes périodiquement avec@Scheduled.

4. @Async

Nous pouvons définir les méthodes que nous voulonsexecute on a different thread, donc les exécuter de manière asynchrone.

Pour y parvenir, nous pouvons annoter la méthode avec@Async:

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

Si nous appliquons cette annotation à une classe, toutes les méthodes seront appelées de manière asynchrone.

Notez que nous devons activer les appels asynchrones pour que cette annotation fonctionne, avec@EnableAsync ou configuration XML.

Plus d'informations sur@Async peuvent être trouvées dansthis article.

5. @Scheduled

Si nous avons besoin d'une méthode pourexecute periodically, nous pouvons utiliser cette annotation:

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

Nous pouvons l'utiliser pour exécuter une méthode àfixed intervals, ou nous pouvons la régler aveccron-like expressions.

@Scheduled exploite la fonction d'annotations répétées de Java 8, ce qui signifie que nous pouvons marquer une méthode plusieurs fois:

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

Notez que la méthode annotée avec@Scheduled doit avoir un type de retourvoid.

De plus, nous devons activer la planification pour que cette annotation fonctionne par exemple avec@EnableScheduling ou la configuration XML.

Pour plus d'informations sur la planification, lisezthis article.

6. @Schedules

Nous pouvons utiliser cette annotation pour spécifier plusieurs règles@Scheduled:

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

Notez que depuis Java 8, nous pouvons obtenir la même chose avec la fonction d’annotation répétée décrite ci-dessus.

7. Conclusion

Dans cet article, nous avons vu un aperçu des annotations les plus courantes de la planification de printemps.

Comme d'habitude, les exemples sont disponiblesover on GitHub.