因为Spring通过Cglib生成代理类对象时,并没有将目标对象的构造函数的参数及其类型进行设定,导致了Cglib在生成代理类对象时,会使用默认的构造函数生成,结果目标对象类没有默认构造函数,Cglib生成子类时,也没有加入默认构造函数,所以,异常的发生成为必然。
解决方法:
1.目标对象,定义一个无参数构造函数,通过生产setter或者getter方法注入.
package cn.mesie.proxy; public class CglibUserDao { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void demand(String demandName) { System.out.println(name + " implemented demand:" + demandName); } }