是否有可能在springframework中记录方法所花费的时间?全部]自动。我的意思是,我不想进入每种方法并编写log.debug(“ ....”);
东西。
AOP是您在这里需要的。AOP允许您将代码添加到您的应用程序,而无需修改原始代码。Spring AOP倾向于使用 Proxy 对象来完成此任务。
代理 对象使用装饰器模式包装原始 Target 对象并添加代码。所述 代理 被配置为实现原始的一个或多个接口 的目标 对象。
在这里,为应用程序计时的想法是使用PerformanceMonitorInterceptor
Spring框架附带的性能监视类之一。
第一种选择是使用Spring类ProxyFactoryBean
创建Spring AOP 代理 对象。去做这个:
PerformanceMonitorInterceptor
:RegexpMethodPointcutAdvisor
:ProxyFactoryBean
代理原始bean并应用 AdvisorPerformanceMonitorInterceptor
为 TRACE在Spring配置下面说明了这些步骤:
<beans>
<bean id="MyServiceTarget" class="org.myapp.services.MyService">
<property ... />
</bean>
<bean id="timingLogger" class="org.springframework.aop.interceptor.PerformanceMonitorInterceptor"/>
<bean id="timingAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice" ref="timingLogger"/>
<property name="patterns">
<list>
<value>.*</value>
</list>
</property>
</bean>
<bean id="MyService" class="org.springframework.aop.framework.ProxyFactoryBean">
<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" 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>
我正在使用Spring Boot编写一个web Rest web服务。
这是配置jetty日志的后续问题。有没有什么属性可以给出请求所花费的时间? 123.4.5.6---[27/Aug/2004:10:16:17 0000]“GET/jetty/tut/XmlConfiguration.html HTTP/1.1”200 76793”http://localhost:8080/jetty/tut/logging.html“Mozilla/5.0(X11;U;Linu
问题内容: 我想衡量用户在网页上花费的时间(以秒为单位,以整数为单位,以浮点数表示,以分钟为单位)。我知道有一个卸载事件,当他们离开页面时,我可以触发该事件。但是如何获得他们已经在那里度过的时间呢? 问题答案: 如果您使用Google Analytics(分析),他们会提供此统计信息,尽管我不确定他们是如何获得的。 如果要自己滚动,则需要将一些AJAX请求发送到服务器进行日志记录。 jQuery有
本文向大家介绍MongoDB如何查询耗时记录的方法详解,包括了MongoDB如何查询耗时记录的方法详解的使用技巧和注意事项,需要的朋友参考一下 准备 在此之前,我们先在我们的数据库中插入10万条数据。数据的格式是这样的: explain explain方法是用来查看db.collecion.find()的一些查询信息的。例如: explain方法有个可选的参数verbose,是个字符串,他表示的是
问题内容: 如何使用Python的文档字符串使用参数记录方法? 编辑: PEP 257给出了这个例子: 这是大多数Python开发人员使用的约定吗? 我期待一些更正式的东西,例如 环境 :Python 2.7.1 问题答案: 根据我的经验,numpy的文档字符串公约(PEP257超集)是最广泛的传播 遵循 惯例,它们也通过工具,如支持的狮身人面像。 一个例子:
我注意到在 Spark 中的规则探索器每次催化剂更改计划时都会执行跟踪日志: https://github . com/Apache/spark/blob/78801881 c 405 de 47 f 7 e 53 EEA 3 e 0420 DD 69593 DBD/SQL/catalyst/src/main/Scala/org/Apache/spark/SQL/catalyst/rules/ru