SpringBoot 测试类无法自动注入@Autowired,测试类报错:NullPointerException

在SpringBoot多数据源配置中遇到@Autowired无法自动注入的问题,即使编译不报错,但在运行测试类时出现NullPointerException。尝试使用@Resource替换@Autowired无效。查阅网上资料后发现,测试类中不应直接创建实例对象,而应使用正确方式初始化,以解决空指针问题。

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

在使用SpringBoot搭建多数据源的时候遇到问题,如图所示:
在这里插入图片描述
虽然这个下划线的红色编译运行不会报错,但是看着很不舒服,将@Autowired换成了@Resource注解就可以了,但是具体原因还有待考究,有大佬知道可以评论一下。

运行测试类,一直报错:

java.lang.NullPointerException…太多了,不想粘贴

空指针问题本来我以为是上面的@Autowired问题,换成了@Resource还是不行。
在网上找了一些解决方案可以看一下:
https://blog.youkuaiyun.com/howard789/article/details/81020233
https://www.cnblogs.com/qingmuchuanqi48/p/11886618.html
这种解决方案不适合我这种问题。

后来才发现不能在测试类创建实例对象,贴上错误代码:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootDataApplication.class)
class SpringbootDataApplicationTests {
    @Test
    void contextLoads() {
        VideoConfigService videoConfigService = new VideoConfigService();
        List<String> list = videoConfigService.findAllId();
        System.out.println(list.size());
    }

}

正确代码:

@RunWith(SpringRunner.cl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值