Die Hauptforschung in diesem Artikel ist der Implementierungscode der Ausführungszeit der Spring -Boot -AOP -Aufzeichnungsmethode wie folgt.
Um die Leistung zu optimieren, müssen zuerst die Ausführungszeit jeder Methode zählen. Es ist zu problematisch, das Protokoll vor und nach der Methode direkt auszugeben. Sie können AOP verwenden, um Zeitstatistiken hinzuzufügen
<Depopenty> <gruppe> org.springframework.boot </Groupid> <artifactId> Spring-Boot-Starter-AOP </artifactid> </abhängig>
Spring.aop.auto = true
Die Eigenschaft spring.aop.auto ist standardmäßig aktiviert, was bedeutet, dass @EnableAtepectjautoproxy standardmäßig hinzugefügt wurde, solange die AOP -Abhängigkeit eingeführt wird. Denken Sie daran, keine unnötigen Informationen hinzuzufügen, wie z.
@Component@Aspektpublic Class Logaspect {private statische endgültige log log = logFactory.getLog (Logaspect.class);/*** Definieren Sie einen Einstiegspunkt. * Erläuterung: * * ~ der erste * repräsentiert einen beliebigen Modifikator und einen beliebigen Rückgabewert. * ~ Das zweite * ist in einem Webpaket oder Unterpackung definiert. */@Pointcut ("Execution (*com.wedo.stream.service ..*.*(..)") ") public void LogpointCut () {}@org.aspespectj.lang.Annotation "/T"); Long start = system.currentTimemillis (); try {Object ergebnis = joinpoint.procePection (); Long End = System.currentTimemillis (); log.Error ("+++++ um"+joinpoint+"/tuse -Zeit:"+(Ende - Start)+"MS!"); System.currentTimemillis (); log.Eror ("++++++ um"+Joinpoint+"/Tuse -Zeit:"+(Ende - Start)+"MS mit Ausnahme:"+e.getMessage ()); Nach der AOP -Methode kann der Wert nicht korrekt zurückgeben
Diese Proxy -Methode muss einen Wert zurückgeben. Andernfalls gibt es keinen Rückgabewert im Code.
// Dies ist falsch public void doaround (Proceedingjoinpoint Joinpoint) {} Aus der Dokumentation von Spring heißt es Folgendes: Der Frühlings -AOP -Teil verwendet JDK Dynamic Proxy oder CGlib, um Proxy für das Zielobjekt zu erstellen. Wenn das Proxy -Ziel mindestens eine Schnittstelle implementiert, wird ein JDK -dynamischer Proxy verwendet. Alle von diesem Zieltyp implementierten Schnittstellen werden proxyiert. Wenn das Zielobjekt keine Schnittstelle implementiert, wird ein CGGLIB -Proxy erstellt.
Die Standardeinstellung ist JDK Dynamic Proxy, geändert in CGGlib
Das obige ist der gesamte Inhalt dieses Artikels zum Beispiel für die Ausführungszeit -Code -Beispiel für die Spring -Boot -AOP -Aufzeichnungsmethode. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!