La principale recherche de cet article est le code d'implémentation du temps d'exécution de la méthode d'enregistrement Spring Boot AOP, comme suit.
Afin d'optimiser les performances, il est nécessaire de compter d'abord le temps d'exécution de chaque méthode. Il est trop gênant pour sortir directement le journal avant et après la méthode. Vous pouvez utiliser AOP pour ajouter des statistiques de temps
<dependency> <proupId> org.springframework.boot </proupId> <ArtifactId> printemp-boot-starter-aop </retifactid> </pedidency>
printemps.aop.auto = true
La propriété Spring.Aop.Auto est activée par défaut, ce qui signifie que tant que la dépendance AOP est introduite, @enableAsspectJautOproxy a été ajoutée par défaut. N'oubliez pas de ne pas ajouter d'informations inutiles, telles que @enableAsspectJautoproxy!
@ Composant @ AspectPublic class logaspect {private static final log log = logfactory.getLog (logaspect.class); / ** * définir un point d'entrée. * Explication: * * ~ Le premier * représente tout modificateur et toute valeur de retour. * ~ Le second * est défini dans un package Web ou un sous-package * ~ La troisième * toute méthode * ~ .. Faites correspondre n'importe quel nombre de paramètres. * / @ Pointcut ("Exécution (* com.wedo.stream.service .. *. * (..))") public void logpointcut () {} @ org.aspectj.lang.annotation.around ("logpointCut ()") public Daround (ProcedingJoinpoint Joinpoint) lance {// log.Debug ("" Logpoint "+ jointure {// log.Debug (" "Logpoint" + RECORD + landable {// Log.Debug ("" Logpoint "+ RECORD + {// Log.Debug (" "Logpoint" + RECORD + LOGAP "/ t"); Long start = System.CurrentTimemillis (); try {objet result = joinpoint.proceed (); long end = System.currenttimemillis (); log.Error ("++++++ autour" + joinpoint + "/ TUSE Time:" + (end - start) + "ms!"); return result;} catch (lancer e) {Long End = System.Currenttimemillis (); log.Error ("++++++ autour de" + joinpoint + "/ tuuse Time:" + (end - start) + "ms avec exception:" + e.getMessage ()); lancer e;}}} Une fois la méthode AOP ne peut pas renvoyer la valeur correctement
Cette méthode de procuration doit renvoyer une valeur, sinon, il n'y aura pas de valeur de retour dans le code.
// Ceci est mauvais public void Daround (ProcedingJoinpoint JOINPOINT) {} La documentation de Spring indique ceci: la partie Spring AOP utilise JDK Dynamic Proxy ou CGLIB pour créer un proxy pour l'objet cible. Si la cible proxy implémente au moins une interface, un proxy dynamique JDK est utilisé. Toutes les interfaces implémentées par ce type de cible seront proxyées. Si l'objet cible n'implémente aucune interface, un proxy CGLIB est créé.
La valeur par défaut est JDK Dynamic Proxy, changé en CGLIB
Ce qui précède est tout le contenu de cet article sur l'exemple de code de temps d'exécution de la méthode d'enregistrement Spring Boot AOP. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!