日期:2014-05-19  浏览次数:20911 次

AspectJ表达式问题,急急急.求解答
(@cn.javass..Secure *) *(..) 任何返回值类型持有@cn.javass..Secure的方法

不理解上面说的意思.我试着配了一下.但是一直不执行我的切面类.发下我的配置

XML code

  <aop:before method="annotation"
          pointcut="execution((@annotation.MyAnnotation *) *(..))"/>




实现接口的类文件是:
Java code

  @Override
    public MyAnnotation sayHelloAnnotation() {
        System.out.println("after annotation");
        return null;
    }



切面类:
Java code

  public void annotation() {
        System.out.println("before annotation");
  }




测试类:
Java code

  public class SpringTest {

    private static ClassPathXmlApplicationContext context;
    
    @BeforeClass
    public static void setUp() {
        try {
            context = new ClassPathXmlApplicationContext("bean.xml");
        } catch(Exception e) {
            e.printStackTrace();
        }
        
    }
    
    @Test
    public void test() {
        try {
            HelloApi ha = context.getBean("hello", HelloApi.class);
            ha.sayHelloAnnotation();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

}




为什么我这么写不符合他说的呢??

------解决方案--------------------
("execution (* com.www.service.impl.*(..))")

执行 返回值类型(*表示任意放回类型) 包 对子包也进行拦截 类 所有的方法 方法参数不限