日常问题记录——Spring启动时,异常报错(Can not set XXX field XXX to com.sun.proxy)

编程入门 行业动态 更新时间:2024-10-15 04:19:08

日常问题记录——Spring启动时,异常<a href=https://www.elefans.com/category/jswz/34/1771188.html style=报错(Can not set XXX field XXX to com.sun.proxy)"/>

日常问题记录——Spring启动时,异常报错(Can not set XXX field XXX to com.sun.proxy)

问题

	开发过程中,将多个类中共有的方法抽象成一个抽象类Interface.java。在使用Interface.java的实现类Impl.java时,注入代码如下:@Autowiredprivate Impl impl;项目启动后,无法正常启动,报错日志:org.springframework.beans.factory.BeanCreationException: Could not autowire field: private XXX xxx; nested exception is java.lang.IllegalArgumentException: Can not set XXX field xxx to com.sun.proxy.$Proxy64

问题分析

JDK在实现动态代理的,只能针对接口进行代理。对类进行代理时,需要使用到CGLib,此时配置不正确或者写法不正确,就会报错。

解决方案

  1. 注入时,参数类型使用接口类型
	@Autowiredprivate Interface impl;
  1. 设置容器支持类代理,需要使用到EnableAspectJAutoProxy注解
	@Service@EnableAspectJAutoProxy(proxyTargetClass = true)public class Impl implements Interface {}
此时,注入的参数类型可为类类型
	@Autowiredprivate Impl impl;

更多推荐

日常问题记录——Spring启动时,异常报错(Can not set XXX field XXX to com.sun.proxy)

本文发布于:2024-03-12 12:05:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1731464.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   启动时   异常   日常   sun

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!