(@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.*(..))")
执行 返回值类型(*表示任意放回类型) 包 对子包也进行拦截 类 所有的方法 方法参数不限