当前位置:  开发笔记 > 编程语言 > 正文

切入点不适用于Spring AOP

如何解决《切入点不适用于SpringAOP》经验,为你挑选了1个好方法。

为了使用Spring AOP实现Logging,我遵循了这些简单的步骤.但它似乎无法正常工作.任何帮助都会有用

1)创建了MyLoggingAspect

    import org.aspectj.lang.ProceedingJoinPoint;

public class MyLoggingAspect
{

    public MyLoggingAspect() {
        super();
        System.out.println("Instantiated MyLoggingAspect");     
    }

    public Object log(ProceedingJoinPoint call) throws Throwable
    {
        System.out.println("from logging aspect: entering method [" + call.toShortString()
                            +"] with param:"+call.getArgs()[0] );

        Object point =  call.proceed();

        System.out.println("from logging aspect: exiting method [" + call.toShortString()   
                            + "with return as:" +point);        

        return point;
    }

}

2)创建了一个我想要记录的类(TixServiceImpl)

public class TixServiceImpl implements TixService{

    @Override
    public void calculateSomething() {
        String s = "did some calculation..";
        System.out.println(s);
    }

    @Override
    public String getTixName() {
        return null;
    }
}

3)创建了一个spring-aspectj.xml文件


    
          
             
             
          
        

4)创建了一个简单的测试客户端(TixClient)

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class TixClient {

    public static void main(String[] a){

        ApplicationContext context = new FileSystemXmlApplicationContext("conf/spring-aspectj.xml");

        TixService tix = new TixServiceImpl();
        tix.calculateSomething();
        String s = tix.getTixName();

        System.out.println("End of the the client invocation!!"); 
    }   
}

5)它给了我以下输出

...
Instantiated MyLoggingAspect
did some calculation..
End of the the client invocation!!

Scott Bale.. 15

我只是检查你的代码,但我有一个预感,问题是你没有TixServiceImpl从Spring 获得你的实例,而是你自己手动在你的实例中实例化它TixClient.我认为你TixService需要成为Spring bean,从Spring ApplicationContext中获取,以便Spring有机会在返回的实例上设置方面.



1> Scott Bale..:

我只是检查你的代码,但我有一个预感,问题是你没有TixServiceImpl从Spring 获得你的实例,而是你自己手动在你的实例中实例化它TixClient.我认为你TixService需要成为Spring bean,从Spring ApplicationContext中获取,以便Spring有机会在返回的实例上设置方面.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有