把applicationContext.xml贴出来

解决方案 »

  1.   

        <aop:aspectj-autoproxy/>
        <bean id="myAspect" class="com.ndvm.aspect.MyAspect"/>  
      

  2.   

        <aop:aspectj-autoproxy/>
        <bean id="myAspect" class="com.ndvm.aspect.MyAspect"/>  
    还有其他配置吧,能不能不要弄一半出来呢?
      

  3.   

    没有用annotation,如下的方法拦截没有问题,不了解annotation.
        <aop:config>
            <aop:aspect id="methodAspect" ref="aspectBean">
                <!--配置aop.chapter01.service包下所有类或接口的所有方法-->
                <aop:pointcut id="methodPointCut" expression="execution(* aop.chapter01.service.*.*(..))" />
                <!--<aop:before pointcut-ref="methodPointCut" method="doBefore"/>-->
                <!--<aop:after  pointcut-ref="methodPointCut" method="doAfter"/>-->
                <aop:around pointcut-ref="methodPointCut" method="doAround"/>
                <aop:after-throwing pointcut-ref="methodPointCut" method="doThrowing" throwing="ex"/>
            </aop:aspect>
        </aop:config>    <bean id="aspectBean" class="aop.chapter01.advice.CallTrackAdvice"/>
    package aop.chapter01.advice;import org.aspectj.lang.JoinPoint;
    import org.aspectj.lang.ProceedingJoinPoint;
    import util.LogUtil;/**
     * 切面: Advice 是 Aspect 的具体实现
     */
    public class CallTrackAdvice {
        public static int steps = 1;    public void doBefore(JoinPoint jp) {
            String className = jp.getTarget().getClass().getName();
            String methodName = jp.getSignature().getName();
            LogUtil.getLogger().info(String.format("[%d: BEFORE  METHOD]: %s.%s()", steps++, className, methodName));
        }    public void doAfter(JoinPoint jp) {
            String className = jp.getTarget().getClass().getName();
            String methodName = jp.getSignature().getName();
            LogUtil.getLogger().info(String.format("[%d: AFTER   METHOD]: %s.%s()\n", steps++, className, methodName));
        }    public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
            String className = pjp.getTarget().getClass().getName();
            String methodName = pjp.getSignature().getName();
            int sn = steps++;        LogUtil.getLogger().info(String.format("[%d: BEFORE  METHOD]: %s.%s()", sn, className, methodName));        long time = System.currentTimeMillis();
            Object retVal = pjp.proceed();
            time = System.currentTimeMillis() - time;        LogUtil.getLogger().info(String.format("[%d: EXECUTE METHOD]: %s.%s() %dms", sn, className, methodName, time));
            LogUtil.getLogger().info(String.format("[%d: AFTER   METHOD]: %s.%s()\n", sn, className, methodName));        return retVal;
        }    public void doThrowing(JoinPoint jp, Throwable ex) {
            String className = jp.getTarget().getClass().getName();
            String methodName = jp.getSignature().getName();
            LogUtil.getLogger().info(String.format("[%d: THROW EXCEPTION]: %s.%s()\n", steps++, className, methodName));
            LogUtil.getLogger().info(ex.getMessage());
        }
    }
      

  4.   

    你用aspectj' 的话 把java代码贴出来吧