Annotazioni di pianificazione della primavera

Questo articolo fa parte di una serie: • Annotazioni Spring Core

• 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