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.