Field XXX in XXXX required a bean of type XXXX that could not be found.

初学SpringBoot,JPA数据查询,项目启动时报错:

Field repo in com.yigo.web1.main.PersonCtrl required a bean of type 'com.yigo.web1.repo.PersonRepo' that could not be found.

摸不着头脑,提示PersonRepo这个类找不到,但是在eclipse中可以正常引用,并没有报错:


包结构如下: 



原因是什么?多方查询之后,终于在stackoverflow上找到了答案,原文链接如下:

https://stackoverflow.com/questions/42907553/field-required-a-bean-of-type-that-could-not-be-found-error-spring-restful-ap

是包结构的问题,项目启动时,只有@SpringBootApplication 所在的包被被扫描,在本例中,启动类是Web1Application.java, 也就是com.yigo.web1.main这个包,而PersonRepo这个类在另外一个包中,所以并没有被扫描。

解决办法有二:

1.  修改注解,

@SpringBootApplication(scanBasePackages={
"com.yigo.web1.p1", "com.com.yigo.web1.p2"})

但是这样有个问题,以后包越来越多怎么办?所以采用第二种办法更合适。

2. 调整包结构,把@SpringBootApplication 所在类放在其他包的最外层:


如此,其他包就和启动类在同一个目录下,就能被扫描到了。

重新启动,问题解决! 感谢stackoverflow上高手们的热心分享!


  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹰信息技术服务部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值