SpringBoot中为什么有的不加@RunWith(SpringRunner.class)也能正常注入?

来源:13-6 service的迁移

SuperAIStar

2021-08-05

http://img.mukewang.com/szimg/610bfa7f0902388428801638.jpg

这个AreaService当时没加@RunWith(SpringRunner.class)就不能注入areaService Bean

http://img.mukewang.com/szimg/610bfae40958f93628801638.jpg

而这个wechatAuthService只有@SpringBootTest也能正常注入

请问老师这是为什么呢?



写回答

1回答

翔仔

2021-08-05

同学好,

在正常情况下测试类是需要@RunWith的,作用是告诉java这个类通过用什么运行环境运行,例如启动和创建spring的应用上下文。否则需要为此在启动时写一堆的环境配置代码。在IDEA里去掉@RunWith仍然能跑是因为在IDEA里识别为一个JUNIT的运行环境,相当于就是一个自识别的RUNWITH环境配置。但在其他IDE里并没有。

0
2
SuperAIStar
发现老师日常都很晚还在电脑前呀!谢谢翔仔老师
2021-08-05
共2条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程