spring异常:org.springframework.beans.BeanInstantiationException解决

本文通过解决Spring框架中出现的NoSuchMethod异常问题,探讨了Spring依赖注入机制与Java反射之间的关系,特别是当类中同时存在有参构造方法时,如何避免初始化错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于现在还在学习新知识阶段,也在疯狂找实习,所以对于很多问题现在还不会通过写博客来仔细的讲,希望以后能找到工作,稳定之后会慢慢的把学习过的内容全部好好的梳理一下然后详细的写成博客。
在学习spring的依赖注入过程中出现了这样一个异常,也就是初始化问题,查了后发现,这种问题有多种情况导致,还没有看过spring源码,因此不能给出十分详细的分析。
有的人遇到的是java抛出了NullPointer异常,那么就检查一下自己哪里出现了空指针问题。

但是对我来讲,我遇到的是Java抛出了一个NoSuchMethod异常,但是仔细查看了一下确认没有少什么显然的方法。
突然想到了spring的ioc实现是通过java的反射机制(看别人的博客),刚好最近也在学习反射机制,想到了利用反射机制通过普通方法进行注入的时候会先进行class.newInstance()的方式获得对象,这个只能是无参的,看了一下自己的,果然发现虽然自己采用的是setter方式实现注入,但是由于前一个练习,还保留了有参的构造方法,在有参构造方法的存在时java的就不会再默认存在无参构造方法,也就是无法通过无参方法获得对象,于是就无法正常初始化bean,果然在把有参构造方法删除掉或者新建无参构造方法就可以正常运行了。

但是因为没有看过源码,也没有看过别人的源码分析,因此不能确定,不过个人现阶段这样去理解是通顺的。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值