SpringBoot 求教这里为什么 Autowire 找不到 bean

2021-09-12 09:45:03 +08:00
 movq

如果测试程序使用这个,就能找到 dog 这个 bean

2708 次点击
所在节点    程序员
10 条回复
Xhack
2021-09-12 10:09:49 +08:00
源码包和 test 不是一个包吧
hiw2016
2021-09-12 11:58:40 +08:00
第二张图「如果测试程序使用这个」,没太看懂这句话
hiw2016
2021-09-12 11:58:55 +08:00
@hiw2016 #2 建议直接把项目放出来
DeadLion
2021-09-12 12:02:08 +08:00
看来是个新手了

你程序启动会自动加载加载 spring 一系列的上下文,包括各种 bean

但是 test 包不会自动加载的,但是我记得有个注解可以加到测试类上就能帮你加载 spring 上下文了。
NotFoundEgg
2021-09-12 12:09:37 +08:00
不知道你用的是 Junit4 还是 5
如果是 Junit4 测试类上打一个 @RunWith(SpringRunner.class)
leonme
2021-09-12 13:10:02 +08:00
@RunWith(SpringRunner.class)
@SpringBootTest
movq
2021-09-12 13:36:28 +08:00
@Xhack 是一个包吧,都是 com.kuang 里面的,com.kuang 里的测试程序看不见 com.kuang.pojo 里面的类吗?
@hiw2016 意思就是我在第二章图里面那个 spring application 里面,使用 @Autowired 注解可以找到 dog 这个 bean
Xhack
2021-09-12 14:02:04 +08:00
@movq 可能没有加载到 test 包里,加个注解
chenshun00
2021-09-13 08:32:52 +08:00
同志你这么一描述,还不如在 github/gitee 创建一个 repo 。
Chinsung
2021-09-14 10:24:07 +08:00
6 楼应该是正解,测试类不是只写一个 SpringBootTest 这么写的。
你这里应该是
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Springboot02 (你那个 application 启动类).class)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801316

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX