- 浏览: 420230 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
zxjlwt:
学习了http://surenpi.com
java.lang.LinkageError解决办法。 -
zqb666kkk:
/**
*
* @param filepath
...
Java删除目录及目录下的所有文件 -
zqb666kkk:
f.exists() && f.isDirec ...
Java删除目录及目录下的所有文件 -
coldrain2014:
在线api文档 http://online.code1314. ...
JavaMail java.lang.NullPointerException -
timeroading1:
chxkyy 写道xx175194716 写道真佩服,把jar ...
Activiti 学习记录3 之Activiti源代码及默认h2数据库连接
spring 的aop功能怎么不起作用。
大家帮我看看:
java 代码
- /**
- *
- */
- package com.dongyun.platform.test;
- /**
- * @author Administrator
- *
- */
- public class AppKwikEMart implements KwikEMart {
- /* (non-Javadoc)
- * @see com.dongyun.platform.test.KwikEMart#buySquishee(com.dongyun.platform.test.Customer)
- */
- public Squishee buySquishee(Customer customer) {
- System.out.println("give you");
- return new Squishee();
- }
- }
java 代码
- /**
- *
- */
- package com.dongyun.platform.test;
- import java.lang.reflect.Method;
- /**
- * @author Administrator
- *
- */
- public class WelcomeAdvice {
- /* (non-Javadoc)
- * @see org.springframework.aop.MethodBeforeAdvice#before(java.lang.reflect.Method, java.lang.Object[], java.lang.Object)
- */
- public void before(Method arg0, Object[] arg1, Object arg2)
- throws Throwable {
- System.out.println("Hello "+"!");
- }
- }
applicationContext.xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
- <aop:aspectj-autoproxy />
- <bean id="kwikEMartTarget"
- class="com.dongyun.platform.test.AppKwikEMart">
- </bean>
- <bean id="welcomeAdvice"
- class="com.dongyun.platform.test.WelcomeAdvice">
- </bean>
- <aop:config>
- <!-- 声明一个切入点。 -->
- <aop:aspect id="myAspect" ref="welcomeAdvice">
- <aop:pointcut id="apointcut"
- expression="execution(* com.dongyun.platform.test.AppKwikEMart.*(..))" />
- <aop:before method="before" pointcut-ref="apointcut" />
- </aop:aspect>
- </aop:config>
- </beans>
然后我在main函数里测试怎么不起作用。
java 代码
- 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 !呢?
评论
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没有实现接口,返回的是子类。
2.使用接口作为getBean返回的引用类型,因为该引用此时是代理。除非你的bean没有实现接口,返回的是子类。
引用
ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
KwikEMart app = (KwikEMart) factory.getBean("kwikEMartTarget");
KwikEMart app = (KwikEMart) factory.getBean("kwikEMartTarget");
3 楼
地方疙瘩人
2007-12-19
我也在做这个同样的问题找了半天找到了
main 中的
AppKwikEMart app = (AppKwikEMart) factory.getBean("kwikEMartTarget"); --错了应当是 factory.getBean("myAspect");
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
发表评论
-
是用枚举(enum)还是用常量(const)
2008-08-18 14:33 0In prior releases, the standard ... -
将java.sql.Blob对象存储成文件
2008-07-10 18:12 5051import java.io.BufferedInputStr ... -
java中的io系统总结
2008-07-09 13:34 2290java中的io中的(input/outp ... -
为什么 Java 接口中不允许定义变量
2008-06-27 18:51 7687转自:http://www.chixiang.or ... -
Java反射机制的小尝试
2008-06-24 12:35 1253com.mycompany.reflect.Reflect类: ... -
java.sql.BatchUpdateException: Overflow Exception
2008-06-11 14:44 11162http://forum.java.sun.com/threa ... -
MyEclipse EJB 3.0 Development Overview
2008-05-21 16:21 2593My Eclipse EJB 3.0 Development ... -
使用 Spring 2.5 注释驱动的 IoC 功能
2008-04-25 22:26 0[url]使用 Spring 2.5 注释驱动的 IoC 功能 ... -
JPA Best Practices
2008-04-16 15:59 3282JPA Best Practices [1] 转自 ... -
JavaMail java.lang.NullPointerException
2008-04-16 13:14 8912使用JavaMail发送邮件出现如下的错误: [ERROR,D ... -
eclipse下快速找类
2008-04-11 14:27 1906Ctrl+Shift+T ctrl+shift+O 自动加载 ... -
response.sendRedirect(location)与rd.forward()区别
2008-03-26 12:30 67613在Java Web开发中,经 ... -
Java删除目录及目录下的所有文件
2008-03-26 12:20 30620java中删除目录事先要删除目录下的文件或子目录public ... -
fileset用法
2008-03-10 09:54 6952FileSet FileSet是一个文件组.这些文件可在 ... -
Servlet/JSP版本之间的关系
2008-01-08 15:12 2503servlet:http://java.sun.com/pro ... -
总结:Svn自动属性设置
2007-12-28 14:59 5821问题提出: 我们在用svn管理代码时候,有时候我们需要 ... -
Tomcat 6.0下创建虚拟目录的几种方法
2007-12-11 13:27 9665%TOMCAT_HOME%\webapps\下直接创 ... -
eclipse 设置快捷键的地方
2007-12-10 15:03 1214[Window]->[Preferences]-> ... -
总结:Hibernate 2 通过外连接查询多张表的数据。
2007-12-10 12:28 9043问题: 在Hibernate中,我们经常会碰到 ... -
Tomcat下用IE下载*.rar文件出现乱码的解决方案
2007-12-10 10:32 3357问题: 在tomcat下直接下载*.rar 一 ...
相关推荐
在讨论Spring AOP(面向切面编程)时,首先需要理解几个核心概念。Spring AOP 是Spring框架提供的一个功能模块,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑中解耦出来,通过在方法调用前后进行...
为了说明Spring的AOP原理,本人使用代理模式中的动态代理完成演示AOP编程的原理的演示。相信,如果你耐心看完整个程序(几乎一行注释一行代码),那么你对Spring这个东西就不是觉得有什么神秘了! 阅读对象:凡是喜爱...
在IT领域,Spring框架是一个广泛使用的Java应用框架,它提供了许多功能,包括依赖注入、面向切面编程(AOP)等。"spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨...
在本篇博客“Spring基础:AOP编程(4)”中,我们将深入探讨Spring框架中的面向切面编程(Aspect-Oriented Programming,简称AOP),这是一个强大的功能,它允许我们在不修改原有业务代码的情况下,实现对系统中横切...
为了在Spring中进行AOP编程,我们需要一些特定的JAR包。以下是对这些关键组件的详细说明: 1. **Spring核心包**: - `spring-core.jar`: 这是Spring框架的基础,包含了IoC(Inversion of Control,控制反转)容器...
### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...
Spring AOP 编程 Spring AOP(Aspect-Oriented Programming,面向切面编程)是一种编程技术,它可以将横切关注点从核心业务逻辑中分离出来,提高系统的可维护性、可扩展性和灵活性。AOP 是 OOP 的补充和完善,可以...
编程语言+JAVAspring+AOP编程+面向切面**:这是一个关于JAVAspring编程语言的AOP编程的面向切面的资源,适合有一定JAVAspring基础的开发者。它介绍了JAVAspring的AOP编程的概念、原理和作用,以及如何使用JAVAspring...
Spring Boot AOP(面向切面编程)是一种强大的设计模式,它允许我们在不修改现有代码的情况下,插入额外的功能或监控代码。在Spring框架中,AOP主要用于日志记录、事务管理、性能统计等场景。本示例是关于如何在...
Spring 2.5 AOP(面向切面编程)是Java应用程序中的一个重要概念,它允许开发者在不修改原有代码的情况下插入新的行为或监控。这个例子旨在帮助我们理解和应用Spring框架的AOP特性。以下是对该主题的详细解释: 一...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP的核心概念是切面(Aspect)、通知(Advice)、连接点...
2. `aspectjweaver.jar`:作为Spring AOP的核心,负责运行时织入,动态修改字节码以实现切面功能。 3. `aopalliance-1.0.0.jar`:作为AOP框架间的桥梁,定义了通用接口,使不同框架的拦截器可以互相协作。 在实际...
Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供...
Spring AOP,即面向切面编程,是Spring框架的核心组件之一,它允许程序员在不修改原有业务代码的情况下,对程序进行功能增强。...通过学习和实践,你可以更好地在Spring框架中利用AOP解决实际问题。
动态代理和Spring AOP(面向切面编程)是两个关键的设计概念,它们在实现高效、模块化的系统中起着至关重要的作用。本文将深入探讨这两个概念,并结合实际应用进行解析。 首先,让我们理解什么是动态代理。动态代理...
面向切面编程(AOP,Aspect Oriented Programming)是Spring框架的一个核心特性,它提供了一种模块化和声明式的方式来处理程序中的交叉关注点,如日志、事务管理、性能监控等。AOP的主要思想是将这些横切关注点与...
标题“Spring+AOP全套jar包”表明这个压缩包包含了Spring框架的核心库以及支持AOP编程的额外组件。这通常包括Spring Core、Spring Beans、Spring Context、Spring AOP、Spring ORM(对象关系映射)等核心模块的jar...
Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的核心部分之一,它为Java开发者提供了强大的面向切面的编程能力。本文将围绕spring-aop.jar这个核心组件,详细探讨Spring AOP的原理、...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它扩展了传统的面向对象编程,使得开发者可以方便地实现横切关注点,如日志、事务管理、性能监控等。在Spring中,AOP通过代理...
spring-aop-3.2.6.RELEASE.jar ; spring-aop-3.2.6.jar spring面向切面编程需要导入的包