在使用Spring Aop的时候,有时会拦截不到希望拦截的方法...
有时2.0可以但2.5却不可以~
Spring Aop 代理 有两种:Java动态代理和Cglib代理
一般我用的是Cglib代理..<aop:config proxy-target-class="true">
只要在被spring拦截的方法中再调用其他被代理的对象的方法就可以实现嵌套拦截,
如果调用自己对象的方法(包括继承的),
只是普通对象的方法调用(这时自己是被剥去了代理的壳的原始对象),
是不能被拦截的。
Debug下,看一下是不是proxy的类,被proxy的才有可能被拦截..
另外: 使用groovy时,不能对注入groovy Bean的java类进行AOP.(接口编程)
会报以下错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messenger': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class $Proxy74]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class $Proxy74
<lang:groovy id="messenger" refresh-check-delay="5000" script-source="classpath:groovy/Messenger.groovy">
<lang:property name="message" value="I Can Do The Frug" />
</lang:groovy>
<bean id="testPageAction" class="cn.edu.hust.mes.test.TestPageAction">
<dwr:remote javascript="test"></dwr:remote>
<property name="messenger" ref="messenger"></property>
</bean>
分享到:
相关推荐
《Spring AOP 4.0.0.RELEASE:深度解析与应用》 Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它为开发者提供了声明式事务管理、日志记录、权限控制等核心功能。在4.0.0....
7. **使用注意事项**:虽然Spring AOP简化了代码,但过度使用可能导致系统过于复杂,增加理解和调试的难度。合理规划切面和通知的使用,避免不必要的性能开销。 这个压缩包可能包含了Spring框架、Spring AOP相关的...
同时,注意不要过度使用AOP,因为它可能会增加系统的复杂性。 总结起来,"com.springsource.org.aopalliance-1.0.0.jar"是Spring框架中实现AOP功能的重要组成部分,它定义了通用的拦截器接口,使得不同AOP框架间能...
《Spring AOP 深入理解与应用》 在Java EE开发中,Spring框架因其强大的功能和灵活性,已经成为事实上的标准。Spring AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种...
- **SpringAOP.avi**:可能是一个视频教程,详细讲解了Spring AOP的概念和实践。 - **SpringAOP.doc**:可能是文档教程,包含了详细的步骤和示例代码。 - **SpringAOP_src.rar**:源代码示例,供你参考和实践。 - **...
Spring源码最难问题:当Spring AOP遇上循环依赖 Spring源码中最难的问题之一是循环依赖问题,当Spring AOP遇上循环依赖时,该如何解决? Spring通过三级缓存机制解决循环依赖的问题。 在Spring中,bean的实例化...
- Spring AOP的配置方法及注意事项。 - 使用AOP进行事务管理和日志记录等示例。 4. **数据访问与集成**: - Spring提供的JDBC、ORM(如Hibernate、JPA)、NoSQL数据库的支持。 - 如何在Spring中配置和使用这些...
**Spring AOP XML方式配置通知** 在Java世界中,Spring框架是广泛应用的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器。AOP允许开发者定义“方面”,这些方面可以封装关注点,如日志、事务...
面向切面编程(AOP)是Spring框架中的一项重要技术,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑代码中分离出来,通过提供声明式的服务来减少代码重复、提高模块化、并使得业务逻辑更容易维护和...
在使用反射实现AOP动态代理时,我们也需要注意一些问题。例如,由于代理类是在运行时动态创建的,这可能会影响程序的性能,特别是在频繁调用代理方法的情况下。因此,在实际开发中,需要根据应用场景的性能要求和...
在Spring 3.2版本中,AOP(面向切面编程)作为一个重要的功能模块,用于实现代码的解耦和模块化。...在实际开发中,还需要注意版本的兼容性,确保所有依赖库与Spring框架的版本相匹配,以避免潜在的问题和冲突。
### Spring AOP 实现流程日志跟踪 #### 一、背景与目的 在现代软件开发过程中,为了...然而,需要注意的是,AOP虽然带来了诸多好处,但也存在一定的劣势,如事务一致性的问题,这需要开发者在实际应用中加以考虑。
Spring AOP(面向切面编程)与MyBatis框架的结合应用,可以帮助我们实现这一目标。以下将详细讲解如何利用Spring AOP来实现多数据库的读写分离。 首先,了解读写分离的基本概念。读写分离是指在一个数据库系统中,...
Spring AOP 简单入门示例 ...注意:在这个示例中,我们只是简单地展示了如何使用 Spring AOP 来记录系统日志,但是在实际应用中,我们需要根据需要记录更多的信息,并且需要考虑到系统的安全性和性能等问题。
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种强大的方式来实现代码的横切关注点,如日志记录、事务管理、性能监控等。在这个"spring aop API示例"中,我们将深入探讨如何利用Spring AOP的四...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它允许我们以声明式的方式管理横切关注点,如日志、事务管理等。在传统的编程模式中,这些关注点通常会分散在代码的各个部分,导致代码复用性差且难以维护。...
**Spring AOP 学习笔记及实现Demo** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP的主要目的...
在使用Spring AOP时,有几点需要注意: 1. **代理选择**:JDK动态代理适用于实现了接口的目标对象,而CGLIB代理则用于没有接口或需要更细粒度控制的情况。 2. **通知顺序**:如果存在多个通知,它们的执行顺序取决...
需要注意的是,本例中给出的依赖配置是一个示例,实际上在Spring 5.1.4.RELEASE版本中,spring-aop已经通过依赖传递的方式包含了spring-context,因此通常只需要引入spring-aop依赖即可。如果需要明确引入spring-...
标题中的“在自定义Spring AOP中使用EL获取拦截方法的变量值”指的是在Spring的面向切面编程(AOP)中,通过Expression Language(EL,表达式语言)来访问被拦截方法的局部变量值。这通常涉及到Spring的代理机制、...