Ich habe diese Service-Bean mit einer Synchronisationsmethode, die eine interne asynchrone Methode aufruft:
%Vor%Das Problem ist, dass der asyncJob nicht wirklich asynchron aufgerufen wird. Ich habe festgestellt, dass dies nicht funktioniert, da bei einem internen Anruf der AOP-Proxy übersprungen wird.
Also versuche ich selbst die Bean zu verweisen:
%Vor%Es schlägt fehl . Wieder kein Async-Anruf.
Also habe ich versucht, es in zwei Beans zu teilen:
%Vor%Fällt erneut aus .
Der einzige funktionierende Weg ist es von einer Controller Bean aus aufzurufen:
%Vor%Aber in diesem Fall ist es ein Servicejob ... warum kann ich ihn nicht von einem Service aus anrufen?
Ich habe einen wirklich guten Weg gefunden, dies zu lösen (mit java8), wenn Sie viele verschiedene Dinge haben, die Sie sowohl synchronisieren als auch asynchron machen möchten. Erstellen Sie einen generischen asynchronen Dienstwrapper, anstatt einen separaten XXXAsync
-Dienst für jeden "synchronen" Dienst zu erstellen:
und dann verwenden Sie es als solches:
%Vor%Tags und Links java spring asynchronous spring-mvc