In letzter Zeit muss das Projekt eine Protokollierungsfunktion erstellen, die ich zum Implementieren von Frühlings -AOP -Annotationsmethoden verwende.
Protokollanmerkungen erstellen
Paket com.wyj.Annotation; import Java.lang.Annotation.Documented; import Java.lang.annotation * @date: 26. August 2016 um 8:25:35 Uhr */@target (elementtype.method) @Retention (retentionPolicy.Runtime) @DocumentedPublic @Interface SySlog {String Action () Standard "// action}Erstellen Sie eine Facettenbenachrichtigungsklasse
Notieren Sie den Methodennamen, die Parameter und die für den Vorgang aufgewendete Zeit mit Surround -Benachrichtigungen
Paket com.wyj.aspep; import java.lang.reflect.method; import org.aspespectj.lang.proceedingjoinpoint; import org.aspespectj.lang.Annotation.around; org.aspespectj.lang.reflect.methodsignature; import org.springframework.bean.factory.Annotation com.wyj.service.syslogservice;/** * log Section Benachrichtigung * * * @Author: Wangyuanjun * @date: 26. August 2016 um 10:28:57 PM */ @Aspekt @componentpublic class syslogaspect {@autowired private syslogservice syslogService; / ** * Eintragspunkt */ @pointcut (" @Annotation (com.wyj.annotation.syslog)") public void pointcut () {}/ ** * Surround -Benachrichtigung * * @param joinpoint * @return * @throws throwable */ @around ("pointcut ()") öffentliches Objekt. System.currentTimemillis (); // Führen Sie das Ziel -Methode -Objekt aus. // Ausführungszeit (Millisekunden) Langzeit = System.currentTimemillis () - BeginTime; // das Protokoll SavesSyslog (joinpoint, Zeit) speichern; Rückgabeergebnis; } / ** * Speichern Sie das Protokoll * * @param JoinPoint * @param time * / private void savesSysLog (ProsectionJoInpoint Joinpoint, Long Time) {methodesignature Signature = (methodesignature) joinpoint.getSignature (); Methode Methode = Signature.getMethod (); SyslogEntity sysLogEntity = new syslogEntity (); Syslog syslog = methode.getannotation (syslog.class); if (syslog! } // avear classname = joinpoint.gettarget (). GetClass (). GetName (); // Erhalten Sie den Methodennamen String methodname = Signature.getName (); sysLogEntity.setMethod (className + "." + methodName + "()"); // angefordertes Parameterobjekt [] args = joinpoint.getArgs (); if (args! = null && args.length! = 0 && args [0]! } sysLogEntity.settime (Zeit); // das Systemprotokoll syslogservice.save (syslogEntity) speichern; }}AP -Annotation scannen und beginnen
Anwendung von Protokollanmerkungen
Wirkung
Die oben genannte Konfigurationsmethode der obigen Spring AOP Aspektj Annotation zur Implementierung der Protokollverwaltung ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.