Ho eseguito una classe @Service
nell'applicazione Spring Boot con uno dei metodi che dovrebbero essere eseguiti in modo asincrono. Come ho letto il metodo dovrebbe essere @Async
annotato e anche io devo eseguire un bean TaskExecutor
. Ma nel manuale di primavera http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html non ho trovato alcuna informazione o esempio su come eseguire TaskExecutor
con annotazione, senza configurazione XML. È possibile creare il bean TaskExecutor
in Spring Boot senza XML, con solo annotazioni? Qui la mia classe di servizio:Avvio a molla. Come creare TaskExecutor con annotazione?
@Service
public class CatalogPageServiceImpl implements CatalogPageService {
@Override
public void processPagesList(List<CatalogPage> catalogPageList) {
for (CatalogPage catalogPage:catalogPageList){
processPage(catalogPage);
}
}
@Override
@Async("locationPageExecutor")
public void processPage(CatalogPage catalogPage) {
System.out.println("print from Async method "+catalogPage.getUrl());
}
}
creo come si parla e mi fa un fagiolo (posso '@Autowire' nella mia classe di test jus per sapere che esiste), ma il mio metodo di servizio non viene eseguito in modo asincrono. Ecco la mia descrizione del metodo: "@Bean public TaskExecutor locationPageExecutor()". Potresti commentare? – Pavlo
In qualsiasi modo sembra che tu abbia risposto alla mia domanda iniziale, quindi vedrò come risolvere il nuovo problema. Grazie. – Pavlo
@Pavlo È inoltre necessario aggiungere '@ EnableAsync' alla classe dell'app di avvio Spring, consultare: [Abilita annotazioni di pianificazione] (http://docs.spring.io/spring/docs/current/spring-framework-reference/html /scheduling.html#scheduling-enable-annotation-support) – Jesper