Spring 2 AOP编程问题spring 的aop功能怎么不起作用。大家帮我看看:package?com.dongyun.platform.test ??
Spring 2 AOP编程问题
spring 的aop功能怎么不起作用。
大家帮我看看:
- package?com.dongyun.platform.test; ??
- public?class?Main?{ ??
- ????public?static?void?main(String[]?args){ ??
- ????????ClassPathResource?resource?=?new?ClassPathResource("applicationContext.xml"); ??
- ????????BeanFactory?factory?=?new?XmlBeanFactory(resource); ??
- //??????AppKwikEMart?app?=?(AppKwikEMart)?factory.getBean("kwikEMartTarget"); ??
- ????????AppKwikEMart?app?=?new?AppKwikEMart(); ??
- ????????Customer?cus?=?new?Customer("chxkyy"); ??
- ????????app.buySquishee(cus); ??
- ????????System.out.println("hello?world!"); ??
- ????} ??
- }??
出来的结果只是:
give you
hello world!
为什么不打印Hello !呢?
1 楼 liusong1220 2007-12-19 WelcomeAdvice 要 impletments MethodBeforeAdvice 2 楼 chxkyy 2007-12-19 liusong1220 写道WelcomeAdvice 要 impletments MethodBeforeAdvice<br/>
我加了也还是不出来:<br/>
<div class='code_title'>java 代码</div>
<div class='dp-highlighter'>
<div class='bar'>?</div>
<ol class='dp-j' start='1'>
<li class='alt'><span><span class='comment'>/**</span>?</span></li>
<li class=''><span><span class='comment'>?*?</span>?</span></li>
<li class='alt'><span><span class='comment'>?*/</span><span>??</span></span></li>
<li class=''><span><span class='keyword'>package</span><span>?com.dongyun.platform.test;??</span></span></li>
<li class='alt'><span>??</span></li>
<li class=''><span><span class='keyword'>import</span><span>?java.lang.reflect.Method;??</span></span></li>
<li class='alt'><span>??</span></li>
<li class=''><span><span class='keyword'>import</span><span>?org.springframework.aop.MethodBeforeAdvice;??</span></span></li>
<li class='alt'><span>??</span></li>
<li class=''><span>??</span></li>
<li class='alt'><span><span class='comment'>/**</span>?</span></li>
<li class=''><span><span class='comment'>?*?@author?Administrator</span>?</span></li>
<li class='alt'><span><span class='comment'>?*</span>?</span></li>
<li class=''><span><span class='comment'>?*/</span><span>??</span></span></li>
<li class='alt'><span><span class='keyword'>public</span><span>?</span><span class='keyword'>class</span><span>?WelcomeAdvice?</span><span class='keyword'>implements</span><span>?MethodBeforeAdvice?{??</span></span></li>
<li class=''><span>??</span></li>
<li class='alt'><span>????<span class='keyword'>public</span><span>?</span><span class='keyword'>void</span><span>?before(Method?arg0,?Object[]?arg1,?Object?arg2)??</span></span></li>
<li class=''><span>????????????<span class='keyword'>throws</span><span>?Throwable?{??</span></span></li>
<li class='alt'><span>????????System.out.println(<span class='string'>"Hello?!"</span><span>);??</span></span></li>
<li class=''><span>????}??</span></li>
<li class='alt'><span>??</span></li>
<li class=''><span>}??</span></li>
</ol>
</div> 3 楼 地方疙瘩人 2007-12-19 我也在做这个同样的问题找了半天找到了
main 中的
AppKwikEMart app = (AppKwikEMart) factory.getBean("kwikEMartTarget"); --错了应当是 factory.getBean("myAspect");
4 楼 stone7 2007-12-21 1.使用ApplicationContext,而不是BeanFactory
2.使用接口作为getBean返回的引用类型,因为该引用此时是代理。除非你的bean没有实现接口,返回的是子类。
引用 ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
KwikEMart app = (KwikEMart) factory.getBean("kwikEMartTarget"); 5 楼 chxkyy 2007-12-25 谢谢,问题解决! 6 楼 east_java 2008-01-02 也刚碰到这个问题.谢谢啊...但这是什么原因啊?为什么 factory.getBean("myAspect"); 这样写就是可以呢? 7 楼 chxkyy 2008-01-04 name 写道也刚碰到这个问题.谢谢啊...但这是什么原因啊?为什么 factory.getBean("myAspect"); 这样写就是可以呢?
KwikEMart app = (KwikEMart) factory.getBean("kwikEMartTarget");
这样写。stone7已经解释清楚。