• Annotazioni Web primaverili
• Annotazioni Spring Boot
• Annotazioni Spring Scheduling (articolo corrente) • Annotazioni Spring Data
• Annotazioni Spring Bean
1. Panoramica
Quando l'esecuzione a thread singolo non è sufficiente, possiamo utilizzare le annotazioni dal pacchetto org.springframework.scheduling.annotation .
In questo breve tutorial, esploreremo le annotazioni di pianificazione di primavera.
2. @EnableAsync
Con questa annotazione, possiamo abilitare la funzionalità asincrona in Spring.
Dobbiamo usarlo con @Configuration :
@Configuration @EnableAsync class VehicleFactoryConfig {}
Ora che abbiamo abilitato le chiamate asincrone, possiamo usare @Async per definire i metodi che lo supportano.
3. @EnableScheduling
Con questa annotazione, possiamo abilitare la pianificazione nell'applicazione.
Dobbiamo anche usarlo insieme a @Configuration :
@Configuration @EnableScheduling class VehicleFactoryConfig {}
Di conseguenza, ora possiamo eseguire metodi periodicamente con @Scheduled .
4. @Async
Possiamo definire metodi che vogliamo eseguire su un thread diverso , quindi eseguirli in modo asincrono.
Per ottenere ciò, possiamo annotare il metodo con @Async :
@Async void repairCar() { // ... }
Se applichiamo questa annotazione a una classe, tutti i metodi verranno chiamati in modo asincrono.
Nota che dobbiamo abilitare le chiamate asincrone affinché questa annotazione funzioni, con @EnableAsync o la configurazione XML.
Ulteriori informazioni su @Async sono disponibili in questo articolo.
5. @Programmato
Se abbiamo bisogno di un metodo da eseguire periodicamente , possiamo usare questa annotazione:
@Scheduled(fixedRate = 10000) void checkVehicle() { // ... }
Possiamo usarlo per eseguire un metodo a intervalli fissi , oppure possiamo perfezionarlo con espressioni simili a cron .
@Scheduled sfrutta la funzione di annotazioni ripetute di Java 8, il che significa che possiamo contrassegnare un metodo con esso più volte:
@Scheduled(fixedRate = 10000) @Scheduled(cron = "0 * * * * MON-FRI") void checkVehicle() { // ... }
Nota che il metodo annotato con @Scheduled dovrebbe avere un tipo di ritorno void .
Inoltre, dobbiamo abilitare la pianificazione affinché questa annotazione funzioni, ad esempio con @EnableScheduling o la configurazione XML.
Per ulteriori informazioni sulla pianificazione, leggi questo articolo.
6. @Schedules
Possiamo usare questa annotazione per specificare più regole @Scheduled :
@Schedules({ @Scheduled(fixedRate = 10000), @Scheduled(cron = "0 * * * * MON-FRI") }) void checkVehicle() { // ... }
Nota che a partire da Java 8 possiamo ottenere lo stesso risultato con la funzione di annotazioni ripetute come descritto sopra.
7. Conclusione
In questo articolo, abbiamo visto una panoramica delle annotazioni di pianificazione Spring più comuni.
Come al solito, gli esempi sono disponibili su GitHub.
Avanti » Annotazioni sui dati di primavera « Annotazioni su Spring Boot precedenti