乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      基于配置文件實現(xiàn)Spring AOP日志管理

       eeason 2012-02-13

      spring AOP 是基于面向切面的編程,它能夠使得我們專注于我們的業(yè)務處理,將一些其他的東西由它來統(tǒng)一完成,程序的侵入性很小,所以被廣泛應用,至于實現(xiàn)原理我就不多說了,兩個字:"代理"!

      下面說說標題所示的應用,記錄日志,什么時候記錄日志,都記錄什么?想想,可不 就是在調(diào)用方法的時候?qū)懭罩韭铮叭绻褂胠ogger的話,都會在方法的開始寫一個logger.info("xxxxxxxxxxxx");結(jié)束的 時候再寫一個,這不是很麻煩嗎,每次都要寫。實際上這個時候我們就可以用aop來做,當方法進入的時候?qū)懸粭l日志,結(jié)束的時候再寫一條,分別對應“前置通 知”和”后置通知“,如果我們都日志有新的寫法,值需要修改控制日志的這個類,對程序沒有絲毫影響,也就談不上改動大量的代碼了。下面開始:

      1.引入aop的命名空間(其中有AOP的那部分):

      <beans xmlns="http://www./schema/beans"
      xmlns:xsi="http://www./2001/XMLSchema-instance"
      xmlns:context="http://www./schema/context"
      xmlns:aop="http://www./schema/aop"
      xsi:schemaLocation="http://www./schema/beans
      http://www./schema/beans/spring-beans-2.5.xsd
      http://www./schema/context
      http://www./schema/context/spring-context-2.5.xsd
      http://www./schema/aop
      http://www./schema/aop/spring-aop-2.5.xsd">

      2.書寫記錄日志的類:

      package com.yjck.fm.util;
      import org.apache.log4j.Logger;
      import org.aspectj.lang.JoinPoint;
      public class LogUtil {
      Logger logger = Logger.getLogger(LogUtil.class);
      public void logAll(JoinPoint jp){
      String methodName = jp.getSignature().getName();
      logger.info(jp.getTarget().getClass().getName()+"---"+methodName);
      Object[] args = jp.getArgs();
      for(int i=0;i<args.length;i++){
      logger.info("params["+i+"]:"+ args[i].toString());
      }
      }
      }

      
      
      
      

      上面這段代碼實現(xiàn)了輸出要調(diào)用的類名,方法已經(jīng)參數(shù)。

      3.配置xml文件:

      <!-- 日志管理aop -->
      <!-- 強制使用cglib代理,如果不設置,將默認使用jdk的代理,但是jdk的代理是基于接口的 -->
      <aop:config proxy-target-class="true" /> 
      <aop:config>
       <aop:aspect id="myAspect" ref="logUtil">
        <aop:pointcut expression="execution(* com.yjck.fm.*.action.*.*(..))" id="logPointCut"/>
        <aop:before method="logAll" pointcut-ref="logPointCut"/>
       </aop:aspect>
      </aop:config>
      <!-- 日志記錄類 -->       
       <bean id="logUtil" class="com.yjck.fm.util.LogUtil"></bean>



      注意:我這里配置的是攔截所有action的所有方法,可以根據(jù)自己的情況配置,同時也只配了一個”前置通知“before,如果要需要還可以配置其他的。


      OK,到此,實現(xiàn)已經(jīng)完畢了!

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多