江西广告网

标题: AspectJ [打印本页]

作者: 纸老虎    时间: 2009-2-5 10:37
标题: AspectJ
在作用AspectJ标签代理时,出了点问题,找了好久才知道答案, 先看看我的代码: Waiter.java package cn.kingfengks.aspectJaop; public interface Waiter { void greetTo(String name); void serveTo(String name); } NaiveWaiter.java package cn.kingfengks.aspectJaop; public class NaiveWaiter implements Waiter { public void greetTo(String name) { System.out.println("greet to " name "..."); } public void serveTo(String name) { System.out.println("serving to " name "..."); } public void print(){ System.out.println("I am a Waiter!"); } } PreGreetingAspect .java package cn.kingfengks.aspectJaop; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect public class PreGreetingAspect { @Before("execution(* greetTo(..))") public void beforGreeting(){ System.out.println("How are you !"); } } 问题就出在主函数上如下面: //一定要用ApplicationContext才可以用 //原来用的是下面这样的,怎么样都没办法自动代理 //Resource res = new ClassPathResource("cn/kingfengks/aop/advisor/applicationContext_aop.xml"); //BeanFactory bf = new XmlBeanFactory(res); ApplicationContext ctx = new ClassPathXmlApplicationContext("cn/kingfengks/aspectJaop/applicationContext.xml"); Waiter waiter = (Waiter)ctx.getBean("waiter"); waiter.greetTo("John"); 原因是:ApplicationContext派生于BeanFactory,而加入了很多的面向应用的功能,.曾有人这样比喻这2者之间的关系,如果BeanFactory是Spring的心脏那么ApplicationContext就是Spring的五脏六腑和躯干四肢了




欢迎光临 江西广告网 (http://bbs.jxadw.com/) Powered by Discuz! X3.2