spring代理注解<aop:aspectj-autoproxy />
2016-02-04 11:30
741 查看
spring默认使用jdk的代理方式,
使用jdk的代理方式我们知道,代理的类需要实现一个接口,若果没有就会报,java.lang.NoSuchMethodException: com.sun.proxy.$Proxy83.loginPage()异常,
这时候我们可以使用<aop:aspectj-autoproxy proxy-target-class="true"/>让spring使用cglib的代理方式,
cglib的时候需要有默认的构造方法,class不能为final的,
如果你对项目中的action就是contorller层代理这就会报这个异常,因为contorller这层没有实现接口,
我们使用<aop:aspectj-autoproxy proxy-target-class="false"/>来指定让他来使用cglib的代理方式,但是: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy22]: Common causes of this problem include using a final class or a non-visible class; 可能会报这个异常,它的意思不能代理final的或后类,我觉的这个是使用的baseDaoImpl的问题,全部继承了basedaoImpl在这个里面使用了
ParameterizedType pt = (ParameterizedType) this.getClass()
.getGenericSuperclass();
this.clazz = (Class<T>) pt.getActualTypeArguments()[0];
Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.ClassCastException-->java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
需要这个类不实现接口,
解决方案值配置<aop:aspectj-autoproxy /> 现在发现应该是spring会自动在JDK动态代理和CGLIB之间转换。
使用jdk的代理方式我们知道,代理的类需要实现一个接口,若果没有就会报,java.lang.NoSuchMethodException: com.sun.proxy.$Proxy83.loginPage()异常,
这时候我们可以使用<aop:aspectj-autoproxy proxy-target-class="true"/>让spring使用cglib的代理方式,
cglib的时候需要有默认的构造方法,class不能为final的,
如果你对项目中的action就是contorller层代理这就会报这个异常,因为contorller这层没有实现接口,
我们使用<aop:aspectj-autoproxy proxy-target-class="false"/>来指定让他来使用cglib的代理方式,但是: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy22]: Common causes of this problem include using a final class or a non-visible class; 可能会报这个异常,它的意思不能代理final的或后类,我觉的这个是使用的baseDaoImpl的问题,全部继承了basedaoImpl在这个里面使用了
ParameterizedType pt = (ParameterizedType) this.getClass()
.getGenericSuperclass();
this.clazz = (Class<T>) pt.getActualTypeArguments()[0];
Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.ClassCastException-->java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
需要这个类不实现接口,
解决方案值配置<aop:aspectj-autoproxy /> 现在发现应该是spring会自动在JDK动态代理和CGLIB之间转换。
相关文章推荐
- ASP.Net MVC开发基础学习笔记(1):走向MVC模式
- ASP.NET 系列:单元测试之SmtpClient
- [译] ASP.NET 生命周期 – ASP.NET 上下文对象(五)
- 【ASP.NET Identity系列教程(二)】运用ASP.NET Identity
- 学习asp.net比较完整的流程
- ASP.NET MVC 自定义后缀路由设置
- ASP.NET MVC 自定义后缀路由设置
- asp.net下载文件几种方式
- ASP.NET MVC4中的bundles特性引发服务器拒绝访问(403错误)
- ASP.NET Identity简介
- Asp.Net MVC过滤器小试牛刀
- asp.net(C#)之NPOI"操作Excel
- Win7旗舰版中的IIS配置asp.net的运行环境
- ASP.NET Identity系列教程(目录)
- 对安卓中Handle机制的一些见解
- ASP.NET 系列:单元测试之Log4Net
- 关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案
- asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
- [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(四)
- 个人笔记 asp 10 asp随机数