1. Asynchroner Anruf
Asynchrone Aufrufe werden zur Ausführung von Methoden mit hohem Zeitaufwand ausführen
2. Regelmäßig asynchron
Implementiert durch Öffnen eines neuen Threads
3. Aktivieren Sie asynchrone Methoden im Springboot
Erfordert 4 Kommentare
1.@ENLEBLEAsync ermöglicht Asynchron
2.@component Register Asynchrone Komponenten
3.@Async Annotation Asynchrone Methode
4.@Autoweger -Injektion von asynchronen Komponenten
4. Machen Sie einen asynchronen Anruf
1. Markieren Sie zuerst das Asynchron in einer Konfigurationsklasse
2. Erstellen Sie dann eine asynchrone Komponentenklasse, genau wie Service oder Controller, die mit Komponenten gekennzeichnet sind, und der Service ist in Ordnung.
3. Erstellen Sie eine asynchrone Methode innerhalb der Klasse und markieren Sie sie mit dem asynchronen Tag. Diese Methode muss eine Instanzmethode sein.
4. Dann ist es dasselbe wie das Injektion des Dienstes.
5. Asynchrone Transaktionen
Es ist nutzlos, @Transactional auf der asynchronisierten Methode zu kennzeichnen.
Die Ernennung @Transactional auf dem von der asynchronisierten Methode genannten Dienst ist gültig.
6. Interner Ruf der asynchronen Methode
Asynchrone Methoden unterstützen keine internen Anrufe, dh asynchrone Methoden können nicht in der Klasse geschrieben werden, die aufgerufen werden muss.
Zum Beispiel hat Klasse A a, b und c. B hat eine asynchronische Annotation. Zu diesem Zeitpunkt ist der asynchrone Ruf von A bis B ungültig.
7. Warum muss eine asynchrone Methode eine Instanzmethode sein
Weil die statische Methode nicht außer Kraft gesetzt werden kann. Denn das Implementierungsprinzip der @aSync asynchronen Methode besteht darin, eine Proxy -Klasse in eine Bohne zu injizieren, die die Bohne erbt und die asynchrone Methode überschreiben und sie ausführen muss.
Dann wird dieses Ding in eine im Frühling gehaltene Warteschlange gegeben. Warten Sie, bis der Thread -Pool gelesen und ausgeführt wird.