spring aop代理不了父类,会忽略从父类继承的方法。
来源:互联网 发布:网络攻防大赛试题 编辑:程序博客网 时间:2024/04/29 07:13
简单的来说spring aop有两种方式,全接口方式使用的是jdk的动态代理,针对接口;而非接口方式使用的是cglib,这种方式类似jdk动态代理,在运行期间生成的代理对象是针对目标类扩展的子类。
下面使用jdk的动态代理做的一个例子,这个能代理到父类,我觉的如果你的项目中有baseDaoimpl的构造方法有
ParameterizedType pt = (ParameterizedType) this.getClass()
.getGenericSuperclass();
this.clazz = (Class<T>) pt.getActualTypeArguments()[0];
可能就代理不了,应该是this获取到的是代理对象,代理对象的Class的ParameterizedType 所以就会报错.
测试代码:
下面使用jdk的动态代理做的一个例子,这个能代理到父类,我觉的如果你的项目中有baseDaoimpl的构造方法有
ParameterizedType pt = (ParameterizedType) this.getClass()
.getGenericSuperclass();
this.clazz = (Class<T>) pt.getActualTypeArguments()[0];
可能就代理不了,应该是this获取到的是代理对象,代理对象的Class的ParameterizedType 所以就会报错.
动态代理的例子,带继承
package com.xianlizg.project.util;public interface BaseInterface { Integer printAge(Integer age);}
package com.xianlizg.project.util;public class BaseInterfaceImpl implements BaseInterface { public Integer printAge(Integer age) { System.out.println(age); return age; }}
package com.xianlizg.project.util;public interface InterfaceTest extends BaseInterface { String printName(String name);}
package com.xianlizg.project.util;public class InterfaceTestImpl extends BaseInterfaceImpl implements InterfaceTest { public String printName(String name) { System.out.println(name); return "aa"; }}
package com.xianlizg.project.util;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class HelpInvokeIntercept implements InvocationHandler { private Object targerObj; HelpInvokeIntercept(Object targerObj){ this.targerObj=targerObj; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { //System.out.print("检查权限");<span style="white-space:pre"></span>//这里可以做很多事,拦截等,spring aop就是把这里挖出来,进行可配置拦截,每次调用方法就会,来这判断 return method.invoke( targerObj, args); }}
测试代码:
@org.junit.Test public void proxyyTest(){ InterfaceTest interfaceTest = (InterfaceTest)Proxy.newProxyInstance(InterfaceTest.class.getClassLoader(),new Class[] { InterfaceTest.class },new HelpInvokeIntercept(new InterfaceTestImpl())); interfaceTest.printName("aaa"); interfaceTest.printAge(22); }
0 0
- spring aop代理不了父类,会忽略从父类继承的方法。
- 【原创】Spring-AOP代理类继承接口..
- Spring AOP中让spring也能代理父类的方法
- 反射..获取spring aop代理类 的目标类方法
- Spring AOP代理机制以及方法调用在同一个类的另一个方法的问题
- 【原创】Spring-AOP代理类..
- Spring AOP代理controller类
- 关于spring aop代理不到父接口中的方法
- Spring AOP:被代理类的构造函数和调用自身类方法的注意点
- spring aop---获取代理类所传入的参数及方法名等
- 继承的父类的request属性为啥 用不了?
- 重写从父类继承的方法的快捷操作
- Spring AOP-编程的方式创建代理类(ProxyFactoryBean)
- Spring之AOP的实现(JDK动态代理:只能代理接口,不能代理类)
- spring经典的基于代理的AOP编程-方法
- 从代理设计模式到Spring AOP
- Spring Chapter 2 AOP 配置&代理的方法
- spring aop学习7:Cglib动态代理(基于继承代理)
- 【BZOJ3922】Karin的弹幕
- mac安装hadoop记录
- HTTP协议介绍
- android studio 不常见错误----------------v7的 TintManager 类 找不到
- Ftxxxx系列------如何让屏幕依然可以滑动当手指按在virtual key旁边 的黑色部分的时候
- spring aop代理不了父类,会忽略从父类继承的方法。
- 中级JavaScript例子, 如何实现一个简单实用的模板套用机制, GXTemplate , 第4章(估计要写9章)
- ConcurrentHashMap源码分析--Java8
- 使用kdb和kgdb调试Linux内核(2)
- 谈谈 iOS 内存管理机制
- 日记——web前端(2)
- Robot Framework 经验谈 - SSHLibrary使用技巧
- C/C++ 取整函数ceil(),floor()
- 编程每一天(Write Code Every Day)