Spring框架中的applicationContext.xml文件中标签的proxy-target-class属性(设定被代理类是jdk代理还是cglib代理)

今天在使用SSH框架编写项目时,出现了如下错误:

Spring框架中的applicationContext.xml文件中标签的proxy-target-class属性(设定被代理类是jdk代理还是cglib代理)_第1张图片

经过错误查找,终于查找到问题所在,原来是applicationContext.xml文件中的标签的proxy-target-class属性值得问题,proxy-target-class属性有两个值:true或者false。默认状态下,proxy-target-class属性的值为false,那么被代理类是基于javaSE(JDK)的动态代理(一般被代理类会实现接口);如果显式的设置了proxy-target-class属性的值为true,那么被代理类就将基于cglib动态代理(spring框架中的代理)。但是我发现我的被代理类是实现了接口的,按常理说被代理类是可以用JDK代理的,但是仍然报错,因此,当proxy-target-class属性的值为默认值(false)无法代理被代理类时,需要显式的设定proxy-target-class的值为true,设定为cglib代理,上面出现的问题就解决了。applicationContext.xml修改如下:


	
	



你可能感兴趣的:(JavaEE)