9
votes

Comment se connecter le temps pris par les méthodes de Springframework?

est-il possible dans SpringFramework de loger le temps pris par des méthodes [sélectif | tout] automatiquement. En automatiquement, je veux dire, je ne veux pas aller à chaque méthode et écrire le log.debug ("...."); truc.


0 commentaires

5 Réponses :


1
votes

Vous pouvez utiliser AspectJ pour cela, déclarez un point de journal appelé par wildcard avec pré- et manipulation de poteau avant () et après () conseil.


0 commentaires

17
votes

AOP est ce dont vous avez besoin ici. AOP vous permet d'ajouter du code à votre application sans modifier le code d'origine. Le ressort AOP préfère y accomplir avec proxy em> objets. proxy em> Les objets utilisent un motif de décorateur pour envelopper l'objet em> cible d'origine et ajouter du code. Le proxy em> est configuré pour implémenter une ou plusieurs interfaces de l'objet d'origine cible em>.

Ici, à l'heure d'une application, l'idée est d'utiliser le performanconitorinterceptor code> , une des classes de surveillance des performances qui expédient avec le cadre de printemps. P>

La première option consiste à utiliser la classe de ressort proxyfactorybean code> pour créer le ressort AOP proxy em> objets. Pour ce faire: p>

  • Définissez votre haricot d'origine em>: li>
  • Définissez un performanconitorInceptor code>: li>
  • Définir un RegexpMethodpointCutPutAdvisor CODE>: LI>
  • Définissez un proxyFactorybean code> pour proxy votre haricot d'origine et appliquez votre conseiller em> li>
  • Définissez le niveau de journal pour le performanconitorInterceptor code> à trace fort> li> ul>

    au-dessous d'une configuration de ressort qui illustre ces étapes: p> xxx pré>

    et la configuration du niveau de journal pour le performanconnorterceptor code>:

    <beans "add xsd declarations here" >
      <bean id="MyService" class="org.myapp.services.MyService">
        <property ... />
      </bean>
    
      <bean id="timingAdvice"
    class="org.springframework.aop.interceptor.PerformanceMonitorInterceptor"/>
    
      <aop:config>
        <aop:advisor pointcut="execution(* org.myapp.services.MyService.*(..))"
          advice-ref="timingAdvice"/>
      </aop:config>
    </beans>
    


4 commentaires

Je ne sais pas pourquoi mais ce ne marche pas.Aso Modifier votre code de à


Il ne s'agit que de rien enregistrement, j'ai ajouté la ligne U spécifiée pour activer la trace, cette chose n'a pas été élaborée. Ensuite, j'ai supprimé mon projet Log4J existant et j'ai créé un nouveau avec tout ce que vous avez mentionné, même je ne reçois rien dans le journal. : |


Cet extrait de configuration seul ne fera rien. Vous devez déclarer un printemps AOP BeanPostProcesseur (ou s'agit-il d'un beanFactoryPostProcesseur) à proxy automatiquement les haricots avec le timingadvisor.


J'ai mis à jour ma réponse au détail Comment faire des haricots de printemps proxy avec le proxyfactorybean



2
votes

Enfin, j'ai compris comment faire cela.

Tout d'abord, voir le message par ' Pascal thivent ', cela m'a fait une grande aide. Après avoir changé votre log4j.properties et créez le Timing Dimingdvisor Ce que vous devez doit, contraignant ce conseiller auprès de la classe que vous souhaitez activer le débogage. Vous devez modifier votre code comme celui-ci.

Code antérieur: xxx

nouveau code. xxx


0 commentaires

1
votes

Je vois qu'il y a déjà été une réponse acceptée ici, mais j'encouragerais tout le monde à jeter un coup d'œil à la dernière version de Spring Outilsuite (distribution d'Eclipse de SpringSource). Il est livré avec un utilitaire de profilage hors de la boîte, la perspicacité du printemps, qui fournit ces statistiques exactes au moment de l'exécution d'un format agréable. Il suffit de déployer votre application à son interne Tomcat, appuyez sur quelques pages, puis allez sur le servlet / Insight et voyez le temps pris dans chaque méthode appelée toutes les étages SQL qui ont été exécutés et combien de temps ils ont pris.

Voici un lien vers une belle écriture à propos de la perspicacité du printemps qui devrait vous obtenir ce que vous voulez en quelques minutes seulement. http: // www .dotkam.com / 2009/10/28 / Spring-Insight-in-Action-5-minutes-de-Scratch /


0 commentaires

4
votes

Vous pouvez jeter un coup d'œil à Stagemonitor . C'est un moniteur de performances d'application Web Java open source. Il capture des métriques de temps de réponse, des métriques JVM, des détails de la demande (y compris une pile d'appels capturée par le profileur de la demande) et plus encore. Les frais généraux sont très bas.

Eventuellement, vous pouvez utiliser le grand graphite de la base de données ELIMINAIRE pour stocker une longue antécédente de données que vous pouvez consulter avec des tableaux de bord de fantaisie.

Exemple Screenshot: Entrez la description de l'image ici

Jetez un coup d'œil au Site Web du projet pour voir plus d'écran, descriptions de fonctionnalités et de la documentation.

Remarque: je suis le développeur de Stagemonitor


0 commentaires