您的位置:首页 > 编程语言 > Java开发

Spring AOP编程问题:下面代码哪里错了?可以考验对Spring AOP的实现机制是否了解的

2015-09-02 20:17 651 查看

引言

刚刚开始学Spring AOP,按照教程配置好之后,可以像正常方法那样执行,却怎么也不会执行切面的方法。去群里问了一下,结果也没有解决。然后自己慢慢的试,终于发现了原因。

下面是一段有问题的代码,只有一处有问题,运行的时候,会报一个
NoSuchBeanDefinitionException
异常( 这里故意不给出详细异常信息 ),若能从下面代码中看出问题,那应该对Spring的AOP实现机制有一定了解。若不能,可以到 Spring_03_AOP_Wrong–github里下载源代码。另外,我将在下一篇博客里解析一下,毕竟新手的话,碰到这样的问题,也比较难处理。

代码如下

类A,测试类,打算拦截A的doing方法

@Component
public class AImpl implements A
{
public void doing() {
System.out.println("hello");
}

public static void main( String[] args )
{
ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");
AImpl a=ctx.getBean(AImpl.class);
a.doing();
}

}


类B是一个切面

@Aspect
public class B {

@Pointcut("execution(* doing(..))")
public void pointCutMethod(){
System.out.println("进入切入点!");
}

@Before("pointCutMethod()")
public void doBefore(){
System.out.println("前置通知!");
}

@After("pointCutMethod()")
public void doAfter(){
System.out.println("后置通知!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: