`

spring aop的注意的一个问题

 
阅读更多

在使用spring aop切面方式拦截方法时,需要使用JoinPoint获取目标方法的参数,这样获得的参数对象中,父类的值是没有被设进去的; 比如:

class A{

        private long opusId;

        public long getOpusId() { return opusId; }

        public void setOpusId(long opusId) { this.opusId = opusId; }

}

 

 

class B extends A{

private int replyPlayerId;

public int getReplyPlayerId() {

return replyPlayerId;

}

public void setReplyPlayerId(int replyPlayerId) {

this.replyPlayerId = replyPlayerId;

}

}

 

function void M1(A a){

...

}

function void M2(B b){

...

}

 

拦截M1,使用JoinPoint.getArgs()获取目标方法的参数,可以获得传入的值;

但是拦截M2,使用JoinPoint.getArgs()获取目标方法的参数,可以获得传入的值时,只能获得b本身的replyPlayerId值;而不能获得opusId的值;

 

这个不知道什么原因,获得不到父类的值。只能改代码,拷贝一个A类,在此基础上加一个replyPlayerId属性。

 

总之,JoinPoint.getArgs()获取目标方法的参数时,不能获得参数父类的值;

 

 

 

分享到:
评论

相关推荐

    Spring aop使用探究实例

    通过对SRPING aop的使用和研究,总结出来的SPRING AOP使用原理,以及在使用spring aop过程中要注意的问题

    Spring AOP配置源码

    <aop:pointcut expression="execution(* com.spring.service..*(..))" id="pointCut"/>声明一个切入点,注意execution表达式的写法 <aop:before method="before" pointcut-ref="pointCut"/> aop前置通知 <aop:after ...

    Spring AOP中使用args表达式的方法示例

    主要介绍了Spring AOP中使用args表达式的方法,结合实例形式分析了spring面向切面AOP中使用args表达式具体步骤、相关实现技巧与操作注意事项,需要的朋友可以参考下

    J2EE_Spring之AOP与依赖注入例子

    J2EE_Spring之AOP与依赖注入例子, Spring包请自己添加。 注意下面两个配置文件: web.xml Spring配置文件applicationContext.xml

    Spring AOP 测试

    掌握AOP的测试源码,仅为学习使用,我在学习时也困惑了很长时间,主要是看不到AOP的结果。经过分析,主要是不会用org.junit.Test 注意运行步骤为: 1.选中工程 2.右键选择Run As Junit Test 3.正常运行就可看到结果...

    SpringBoot中的AOP+自定义注解(源代码)

    2.0 创建一个SpringBoot项目 2.1 引入 POM 依赖 2.1.1 引入springboot aop依赖 2.1.2 引入fastjson依赖 2.2 .编写配置类SpringConfig.java 2.3.编写测试Controller 2.4 编写切面类(使用注解 `@Aspect`): 2.5 测试...

    Spring AOP定义AfterReturning增加实例分析

    主要介绍了Spring AOP定义AfterReturning增加,结合实例形式分析了Spring面相切面AOP定义AfterReturning增加相关操作技巧与使用注意事项,需要的朋友可以参考下

    Spring的学习笔记

    一、 建立一个新的项目 8 二、 建立spring的配置文件 8 三、 引入spring的jar包 8 四、 测试代码: 8 五、 注意接口的使用: 8 第五课:IOC(DI)配置及应用 9 一、 什么是IOC、DI 9 二、 编辑xml文件时,没有提示 9 ...

    Spring AOP访问目标方法的参数操作示例

    主要介绍了Spring AOP访问目标方法的参数操作,结合实例形式详细分析了spring面向切面AOP访问目标方法的参数相关实现步骤与操作注意事项,需要的朋友可以参考下

    高级开发spring面试题和答案.pdf

    某一个事务嵌套另一个事务的时候怎么办? REQUIRED_NEW和REQUIRED区别 Spring的事务是如何回滚的,实现原理; 抽象类和接口的区别,什么时候用抽象类什么时候用接口; StringBuilder和StringBuffer的区别 java值传递...

    spring4.1核心包

    相关介绍 1. spring-aop-4.1.1.RELEASE.jar ... 这就提供了(并且要求)在改变系统持久状态的活动和产生显示内容的活动之间 有一个清晰的分层。 20. spring-websocket-4.1.1.RELEASE.jar websocket消息架构

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    注意 'spring-test.jar' 包含了上个版本 'spring-mock.jar'中的一切,因此如果是单元或集成测试,可以直接取代。 Spring 2.5的 'spring-tx.jar' 取代了 'spring-dao.jar' 和'spring-jca.jar' 文件,表达其对...

    Spring 2.0 开发参考手册

    9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring JDBC包结构...

    spring2.5 学习笔记

    一、 建立一个新的项目 8 二、 建立spring的配置文件 8 三、 引入spring的jar包 8 四、 测试代码: 8 五、 注意接口的使用: 8 第五课:IOC(DI)配置及应用 9 一、 什么是IOC、DI 9 二、 编辑xml文件时,没有提示 9 ...

    springboot实现多数据源而且加上事务不会使aop切换数据源失效

    用springboot 集成mybatis多数据源,用aop实现的动态切换,支持事务,不会使aop动态切换失效。注意:此代码不涉及分布式事务,如果需要分布式事务 需要采取其他方案。

    spring-framework完整源代码(spring框架源码)

    aop,beans,cache,context,core,dao,ejb,instument,jca,jdbc,jms,jmx,jndi,mail,metadate,mock,orm,remoting,scheduling,scripting,stereotype,test,transcation,ui,util,validation,web 以上数十子模块源码全部为...

    《精通Spring2.X企业应用开发详解》随书源码1-15章

    图书简介 本书分为6大部分,其中第一部分为Spring概述性知识;第二部分讲解了Spring框架核心技术的内容;第三部分涵盖了在Spring中使用各种数据访问技术的内容;第四部分讲解业务层各种技术的知识;第五部分是...

    Spring中文帮助文档

    9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. 选择一...

    spring chm文档

    9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring ...

Global site tag (gtag.js) - Google Analytics