首页 > 代码库 > Spring:利用PerformanceMonitorInterceptor来协助应用性能优化
Spring:利用PerformanceMonitorInterceptor来协助应用性能优化
前段时间对公司产品做性能优化。如果单依赖于测试,进度就会很慢。所以就想着通过对代码的方式来完成,并以此来加快项目进度。具体的执行方案自然就是要知道各个业务执行时间,针对业务来进行优化。
因为项目中使用了Spring,那自然的就想到要通过 Spring interceptor来完成这个事,然后就查了一下spring-aop.jar里,已有了多个trace,monitor相关的interceptor了。然后逐个看了一下,有一个PerformanceMonitorInterceptor,能够满足需求。就直接将其引入到项目中,以供性能优化之用。
下面就贴出来我的相关配置:
1、添加一个applicationContext-performace.xml文件,加入Interceptor,并配置好相关的 拦截ponitcut:
<bean id="xxxPerformance" class="org.springframework.aop.interceptor.PerformanceMonitorInterceptor"> </bean><aop:config> <aop:advisor pointcut="execution(* org.springframework.jdbc.core.JdbcTemplate.*(..))" advice-ref="xxxPerformance" />
<!-- 你项目中业务实现包 --> <aop:advisor pointcut="execution(* com.your.project.service.impl.*.*(..))" advice-ref="xxxPerformance" /></aop:config>
2、 然后配置 log4j.xml,让其打到日志文件中和CLI:
<appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.EnhancedPatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p](%-35c{1.}:%L) %m%n"> </layout></appender><appender name="sql-appender" class="org.apache.log4j.RollingFileAppender"> <param name="file" value="${WAS_INSTALL_HOME}/your/logs/directory/xxx-sql.log" /> <param name="Append" value="true" /> <param name="MaxFileSize" value="100MB" /> <param name="MaxBackupIndex" value="10" /> <layout class="org.apache.log4j.EnhancedPatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p](%-35c{1.}:%L) %m%n"> </layout></appender><!--SQL : log your sql used JdbcTemplate--><logger name="org.springframework.jdbc.core.JdbcTemplate" additivity="false"> <level value="DEBUG" /> <appender-ref="console"/> <appender-ref="sql-appender"/></logger><!--mybatis mapper: log your sql used mybatis--><logger name="your.mapper.directory" additivity="false"> <level value="DEBUG" /> <appender-ref="console"/> <appender-ref="sql-appender"/></logger><!--Performance --><logger name="org.springframework.aop.interceptor.PerformanceMonitorInterceptor" additivity="false"> <level value="TRACE" /> <appender-ref="console"/> <appender-ref="sql-appender"/></logger>
注意:
上面红色背景的内容是需要替换成你的项目中的相关包名或者目录。
Spring:利用PerformanceMonitorInterceptor来协助应用性能优化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。