2. Sommario
● Configurazione maven (pom.xml)
● Avvio del contesto
● Il componente preposto alla chiamata onerosa
● L’uso del componente
● Lancio dell’applicativo
3. Configurazione maven (pom.xml)
● Versione minimale
● Compatibilità con Java 8
● Dipendenze spring-core e spring-context
● Esternalizzazione della versione di Spring
4.
5. Avvio del contesto
● Avvio del contesto alla riga 22
● Annotazioni necessarie (righe 15-17)
– @Configuration: il contesto spring usa questa classe per caricarsi
– @ComponentScan: rende disponibile in bean FuturProvider
– @EnableAsync: rende disponibile la chiamata asincrona all’interno
di questa configuration
● @Bean taskExecutor: (riga 49) istruisce Spring sul
componente da usare per avviare i thread asincroni
6.
7. Il componente preposto alla
chiamata onerosa
● E’ un component standard di Spring
● Necessario per il metodo che espone la chiamata
onerosa
– Annotazione con @Async (se la chiamata al metodo
asnyc non parte da un altro componente,
l’annotazione non viene considerata)
– Ritorno di tipo CompletableFuture<T>
8.
9. L’uso del componente
● Un ciclo di 5 chiamate a scopo statistico (riga 27)
● Chiamata “classica” alla riga 29
● Prima callback alla riga 31
● Seconda callback in cascata con ritorno alla riga 37
● Terza callback in cascata con ritorno alla riga 41
● Flusso sincrono alla riga 45
10.
11. Lancio dell’applicativo
● Thread “main” con stampa riga 28 e 46
● SimpleTaskExecutor (uno nuovo per chiamata a
future, non efficiente) con stampe di riporto
esecuzione e successive composizioni (righe
33,35,38,41)
● ThreadPoolTaskExecutor (uno solo per le 5
esecuzioni grazie al pooling, più efficiente)