栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何记录Springframework中方法花费的时间?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何记录Springframework中方法花费的时间?

AOP是您在这里需要的。AOP允许您将代码添加到您的应用程序,而无需修改原始代码。Spring AOP倾向于使用 Proxy 对象来完成此任务。
代理 对象使用装饰器模式包装原始 Target 对象并添加代码。所述 代理 被配置为实现原始的一个或多个接口 的目标 对象。

在这里,为应用程序计时的想法是使用

PerformanceMonitorInterceptor
Spring框架附带的性能监视类之一。

第一种选择是使用Spring类

ProxyFactoryBean
创建Spring AOP 代理 对象。去做这个:

  • 定义您的 原始bean
  • 定义一个
    PerformanceMonitorInterceptor
  • 定义一个
    RegexpMethodPointcutAdvisor
  • 定义一个
    ProxyFactoryBean
    代理原始bean并应用 Advisor
  • 将日志级别设置
    PerformanceMonitorInterceptor
    TRACE

在Spring配置下面说明了这些步骤:

<beans>  <bean id="MyServiceTarget" >    <property ... />  </bean>  <bean id="timingLogger" />  <bean id="timingAdvisor" >    <property name="advice" ref="timingLogger"/>    <property name="patterns">      <list>        <value>.*</value>      </list>    </property>  </bean>  <bean id="MyService" >    <property name="proxyInterfaces">      <value>org.myapp.services.MyService</value>    </property>    <property name="target"><ref local="MyServiceTarget"/></property>    <property name="interceptorNames">      <list>        <value>timingAdvisor</value>      </list>    </property>  </bean></beans>

以及日志级别的配置

PerformanceMonitorInterceptor

log4j.logger.org.springframework.aop.interceptor.PerformanceMonitorInterceptor=TRACE

从Spring 2.0开始,还有另一个选择:使用基于Spring 2.0 XML
Schema的配置
和Spring的AspectJ样式切入点表达式。使用,

ProxyFactoryBean
您必须显式声明要代理的接口。使用
<aop:config>
<aop:advisor>
标记,您可以自动代理Bean容器中每个对象的每个接口。

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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394899.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号