首页 > 代码库 > 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来协助应用性能优化