`

Spring 2 AOP编程问题

    博客分类:
  • Java
阅读更多

spring 的aop功能怎么不起作用。

大家帮我看看:

java 代码
  1. /**  
  2.  *   
  3.  */  
  4. package com.dongyun.platform.test;   
  5.   
  6. /**  
  7.  * @author Administrator  
  8.  *  
  9.  */  
  10. public class AppKwikEMart implements KwikEMart {   
  11.   
  12.     /* (non-Javadoc)  
  13.      * @see com.dongyun.platform.test.KwikEMart#buySquishee(com.dongyun.platform.test.Customer)  
  14.      */  
  15.     public Squishee buySquishee(Customer customer) {   
  16.         System.out.println("give you");   
  17.         return new Squishee();   
  18.     }   
  19.   
  20. }  
java 代码
  1. /**  
  2.  *   
  3.  */  
  4. package com.dongyun.platform.test;   
  5.   
  6. import java.lang.reflect.Method;   
  7.   
  8.   
  9. /**  
  10.  * @author Administrator  
  11.  *  
  12.  */  
  13. public class WelcomeAdvice {   
  14.   
  15.     /* (non-Javadoc)  
  16.      * @see org.springframework.aop.MethodBeforeAdvice#before(java.lang.reflect.Method, java.lang.Object[], java.lang.Object)  
  17.      */  
  18.     public void before(Method arg0, Object[] arg1, Object arg2)   
  19.             throws Throwable {   
  20.         System.out.println("Hello "+"!");   
  21.     }   
  22.   
  23. }   

 

applicationContext.xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:aop="http://www.springframework.org/schema/aop"  
  5.     xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xsi:schemaLocation="   
  7.     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   
  8.     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd   
  9.     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">  
  10.     <aop:aspectj-autoproxy />  
  11.     <bean id="kwikEMartTarget"  
  12.         class="com.dongyun.platform.test.AppKwikEMart">  
  13.     </bean>  
  14.   
  15.     <bean id="welcomeAdvice"  
  16.         class="com.dongyun.platform.test.WelcomeAdvice">  
  17.     </bean>  
  18.   
  19.     <aop:config>  
  20.         <!-- 声明一个切入点。 -->  
  21.         <aop:aspect id="myAspect" ref="welcomeAdvice">  
  22.             <aop:pointcut id="apointcut"  
  23.                 expression="execution(* com.dongyun.platform.test.AppKwikEMart.*(..))" />  
  24.             <aop:before method="before" pointcut-ref="apointcut" />  
  25.         </aop:aspect>  
  26.     </aop:config>  
  27. </beans>  

然后我在main函数里测试怎么不起作用。

java 代码
  1. package com.dongyun.platform.test;   
  2. public class Main {   
  3.     public static void main(String[] args){   
  4.         ClassPathResource resource = new ClassPathResource("applicationContext.xml");   
  5.         BeanFactory factory = new XmlBeanFactory(resource);   
  6. //      AppKwikEMart app = (AppKwikEMart) factory.getBean("kwikEMartTarget");   
  7.         AppKwikEMart app = new AppKwikEMart();   
  8.         Customer cus = new Customer("chxkyy");   
  9.         app.buySquishee(cus);   
  10.         System.out.println("hello world!");   
  11.     }   
  12. }  

出来的结果只是:

give you
hello world!

为什么不打印Hello !呢?


分享到:
评论
7 楼 chxkyy 2008-01-04  
name 写道
也刚碰到这个问题.谢谢啊...但这是什么原因啊?为什么 factory.getBean("myAspect"); 这样写就是可以呢?

KwikEMart app = (KwikEMart) factory.getBean("kwikEMartTarget");

这样写。stone7已经解释清楚。
6 楼 east_java 2008-01-02  
也刚碰到这个问题.谢谢啊...但这是什么原因啊?为什么 factory.getBean("myAspect"); 这样写就是可以呢?
5 楼 chxkyy 2007-12-25  
谢谢,问题解决!
4 楼 stone7 2007-12-21  
1.使用ApplicationContext,而不是BeanFactory
2.使用接口作为getBean返回的引用类型,因为该引用此时是代理。除非你的bean没有实现接口,返回的是子类。

引用
    ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
    KwikEMart app = (KwikEMart) factory.getBean("kwikEMartTarget");
3 楼 地方疙瘩人 2007-12-19  
我也在做这个同样的问题找了半天找到了
main 中的
AppKwikEMart app = (AppKwikEMart) factory.getBean("kwikEMartTarget");   --错了应当是 factory.getBean("myAspect");


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>
1 楼 liusong1220 2007-12-19  
WelcomeAdvice 要 impletments MethodBeforeAdvice

相关推荐

    音乐_全栈开发_程序猿依力_实战文档库_1742857530.zip

    音乐_全栈开发_程序猿依力_实战文档库_1742857530.zip

    移动开发_Android_基础框架_SAFApi组件开发_1742847786.zip

    移动开发_Android_基础框架_SAFApi组件开发_1742847786.zip

    《基于YOLOv8的射击训练辅助系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    tryzealot_zealot_1742848746.zip

    app开发

    word-【软考-网络工程师】学习资源

    网络工程师(中级)是软考(计算机技术与软件专业技术资格考试)的一部分,主要考察计算机网络基础、网络安全、网络管理、操作系统、数据库等内容,考试分为上午的基础知识选择题和下午的案例分析题。

    《基于YOLOv8的卫星影像地物识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    《基于YOLOv8的体育统计识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    渗透测试之信息收集思维导图

    信息收集思维导图

    Office 2019家庭和学生版安装工具.exe

    本工具用于下载安装Office2019学生和家庭版。

    30页-清华科技园智慧园区方案.pdf

    智慧园区,作为智慧城市的重要组成部分,正借助5G、云计算、大数据等前沿技术,实现园区的全面智慧化升级。它不仅仅是技术的堆砌,更是园区管理模式和服务理念的革新。智慧园区通过构建统一的大数据平台,实现园区内各类数据的整合与共享,让管理者能够全局掌握园区运营状态,实现人、事、物的穿透式管理。 在5G技术的加持下,智慧园区的特色应用得以更加广泛和深入地开展。从便捷通行到智慧物联,从楼宇自控到企业服务,5G智慧园区为园区内的企业和员工提供了前所未有的便捷与高效。刷脸通行、车牌识别、访客线上预约等技术的应用,不仅提升了园区的安全等级,更让通行变得简单快捷。而智慧垃圾桶、路灯等物联网设备的引入,则让园区的环境管理更加智能化、精细化。此外,5G智慧园区还通过无人机巡检、无人驾驶等创新应用,为园区的安全管理、物资配送等方面带来了全新的解决方案。 值得一提的是,智慧园区的建设并不仅仅局限于硬件设施的升级,更在于服务模式的创新。通过园区APP、在线服务平台等渠道,智慧园区实现了园区服务的线上化、便捷化,让企业和员工能够随时随地享受到园区提供的各类服务。这种以人为本的服务理念,不仅提升了园区的整体服务水平,更增强了园区的吸引力和竞争力。总之,5G智慧园区的建设为园区的可持续发展注入了新的活力,也为未来城市的发展提供了有益的借鉴和启示。

    [GESP202503 C++五级题解]:P11960:平均分配

    [GESP202503 C++五级题解]:P11960:平均分配

    1.21.1-fabric-mods.zip

    Java 版-我的世界 Minecraft 1.21.1-fabric 模组

    苏苏源码-springboot454-昆仑科技文献系统(编号:100011323).zip

    标题SpringBoot在昆仑科技文献系统中的应用研究AI更换标题第1章引言介绍SpringBoot框架在昆仑科技文献系统中的研究背景、意义、现状以及论文的方法和创新点。1.1研究背景与意义分析SpringBoot框架在文献系统领域的应用价值。1.2国内外研究现状综述SpringBoot框架在文献系统中的应用情况和发展趋势。1.3论文方法与创新点阐述本文采用的研究方法和创新点。第2章SpringBoot框架概述详细介绍SpringBoot框架的基本概念、核心特性和优势。2.1SpringBoot简介概述SpringBoot的定义、发展历程和基本特点。2.2核心组件与工作原理解释SpringBoot的核心组件及其工作原理。2.3SpringBoot的优势分析SpringBoot框架相比其他框架的优势。第3章昆仑科技文献系统分析对昆仑科技文献系统进行详细的需求分析和功能设计。3.1系统需求分析明确昆仑科技文献系统的功能需求和性能需求。3.2系统功能设计根据需求分析结果,设计昆仑科技文献系统的功能模块。3.3数据库设计设计满足系统需求的数据库结构。第4章SpringBoot在昆仑科技文献系统

    Nvidia A6000 驱动 572.83-quadro-rtx-desktop-notebook-win10-win11-64bit-international-dch-whql.exe

    Nvidia A6000 驱动 572.83-quadro-rtx-desktop-notebook-win10-win11-64bit-international-dch-whql.exe

    《基于YOLOv8的化学实验监测系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    《基于YOLOv8的体育成就监测系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    《基于YOLOv8的民族舞蹈分析系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    蓝桥杯python,蓝桥杯python相关资源

    蓝桥杯python

    EMBA毕业论文撰写与答辩技巧:智慧城市商业模式优化研究的经验分享

    内容概要:本文详细介绍了毕业论文的撰写与答辩经验,涵盖了从选题、写作到答辩的全过程。首先,强调了选题的重要性,建议选择具有研究价值且聚焦于某一特定问题的课题。其次,分享了论文写作中的常见难题及其解决方案,如构建严谨的逻辑结构、加强数据分析等。接着,阐述了与导师的有效沟通方式,包括多交流、注重沟通质量等。此外,提供了答辩前的准备工作,如制作PPT、模拟演练等,并强调了答辩过程中的注意事项,如保持沉着、逻辑清晰、合理使用体态语等。最后,提醒了论文写作中常见的七个雷区,如引用不标脚注、格式不符要求等,以避免不必要的失误。 适合人群:正在撰写或即将撰写毕业论文的本科生、硕士生及博士生。 使用场景及目标:①帮助学生在选题阶段找到有价值的研究方向;②指导学生在论文写作过程中克服常见难题;③协助学生准备答辩,确保顺利通过答辩环节;④提醒学生避免论文写作中的常见错误,提高论文质量和答辩成功率。 其他说明:本文不仅提供了实用的操作建议,还分享了许多亲身经历的心得体会,旨在帮助学生顺利完成毕业论文的各个环节。文中提到的多个网站和工具也为学生提供了便捷的资源和支持。

    《基于YOLOv8的路面标线实时检测系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

Global site tag (gtag.js) - Google Analytics