L'annotazione Spring @Async
può essere utilizzata sui metodi di interfaccia (quindi tutte le implementazioni di quell'interfaccia avranno implicitamente @Async
in tale metodo) o possono essere utilizzate solo su classi concrete?Spring @Anteprima sincronizzata sui metodi di interfaccia
risposta
Ho provato rapidamente e avendo @Async
su un'interfaccia renderà l'implementazione asincrona.
Se volete provare voi stessi: Si può facilmente verificare questo controllando che i valori di Thread.currentThread().getId()
sono diversi (prima di chiamare il metodo e all'interno del metodo) o semplicemente l'aggiunta di un Thread.sleep(10000);
nel metodo dovrebbe essere asincrono.
Inoltre prendere nota del tipo di reso deve essere void
o java.util.concurrent.Future
.
Da @Async
è defined come
@Target(value={TYPE,METHOD})
@Retention(value=RUNTIME)
@Documented
public @interface Async
e TYPE
is
classe, interfaccia (incluso il tipo di annotazione), o enum dichiarazione
e METHOD
is
dichiarazione di metodo
sì, è possibile utilizzarlo su metodi di interfaccia, anche.
ma renderà _actually_ anche l'implementazione asincrona? :) –
si. renderà tutte le sue implementazioni Async – maya16
- 1. domande sui metodi di cluster
- 2. Domanda sui metodi [Pure]
- 3. Riflessione sui metodi sovrascritti dall'interfaccia
- 4. Informazioni sui metodi generici java
- 5. Ritardare l'implementazione dei metodi di interfaccia?
- 6. Registrazione dai metodi di interfaccia predefiniti
- 7. Jackson serializzare solo metodi di interfaccia
- 8. Tutti i metodi di interfaccia sono astratti?
- 9. C# WinForms - Domande sui metodi di pittura
- 10. Metodi di chiamata sui componenti figlio React
- 11. Spring 3 DI utilizzando generica interfaccia DAO
- 12. Utilizzo di Spring Validator sui servizi Web
- 13. Vagrant autorizzazioni cartella sincronizzata
- 14. Interfaccia con parametro generico vs Interfaccia con metodi generici
- 15. interfaccia estende un'altra interfaccia, ma implementa i suoi metodi
- 16. Raccolta sincronizzata
- 17. Design C#: perché è necessario/override obbligatorio sui metodi astratti ma non sui metodi virtuali?
- 18. Metodi obsoleti nella Rubrica Indirizzi interfaccia utente
- 19. nomi dei metodi con fluente interfaccia
- 20. Interfaccia, astratto o solo metodi virtuali?
- 21. JavaScript va per ciclo iterato sui metodi?
- 22. Spring @Metodi memorizzabili con liste
- 23. Documentazione swagger per interfaccia Spring Pageable
- 24. Delphi - Informazioni RTTI sui metodi nei record
- 25. Confronto: metodi di interfaccia vs metodi virtuali rispetto a metodi astratti
- 26. coda di blocco sincronizzata pthread
- 27. Gestione di diverse implementazioni di un bean Spring/interfaccia
- 28. È sicuro utilizzare un'annotazione Spring @Transactional su un metodo di interfaccia predefinito Java 8?
- 29. Miscelazione sincronizzata() con ReentrantLock.lock()
- 30. Iterazione su collezione sincronizzata
Hai provato? –
Ho provato ad annotare un metodo di interfaccia (e lo ho compilato), ma preferisco scoprire se effettivamente funzionerà prima di iniziare ad implementare le classi concrete – Alex
Nel caso in cui si usi il proxy cglib invece del proxy jdk e si annoti con @Async sull'interfaccia potrebbe non funzionare – shrini1000