service注入为null 部分注入成功,部分注入失败

        今天新版本已经进入测试阶段了,测试大兄弟突然告诉我有个以前调通的接口报错了。虽然那接口不是我开发的,但手头上正好没有什么活,就暂且看一看。

        看下日志,报的是空指针。

        但奇怪的是没有看到指向业务层的行数,只有一个controller层的行数日志,一时间不好判断问题来源,拿到参数后debug测试一下,找到问题了。

        竟然是注入的service为null,这真是很奇怪了,这个注入很久很久很久以前就用过了,怎么突然就注入失败了呢!验证猜想,调用一个简单的查询方法,发现成功了。这时就纳闷了,百度“service注入失败”,也跟我的情况大相径庭。采用各种注释,替换代码内容的方式验证,终于是发现了,竟然是接口用的private导致的,用public的接口都是正常可以注入的。

        首先用private肯定是手误,一般都是用public,但以前能用,这次突然调不通了,肯定还是有什么改动导致的。百度了下“controller私有方法”,检查了下这个类的最近改动,发现是同事添加了一个aop的自定义注解,把注解注释掉,发现private也可以正常注入访问。

        虽然找到了问题,但并不知道原因,百度找了找,也没发现对原理方面的解读。只能是暂且记录下来,待遥遥无期的哪一天再来补充了。

测试注入servicenull的原因可能是因为在测试中没有正确地配置依赖注入。通常情况下,测试中需要使用@SpringBootTest注解来启动Spring容器,并使用@Autowired注解来进行依赖注入。如果测试中的属性没有被正确注入,可能是以下几个原因导致的: 1. 测试没有使用@SpringBootTest注解启动Spring容器。在测试级别上添加@SpringBootTest注解,以确保正确地启动Spring容器。 2. 测试中的属性没有使用@Autowired注解进行注入。请确保测试中需要使用的Service属性标有@Autowired注解,以便Spring容器可以自动将实例注入到属性中。 3. 测试的属性型与需要注入Service型不匹配。请检查测试中需要注入Service属性的型是否与实际的Service型一致。 4. 测试中缺少对应的Service Bean定义。请检查测试所在的包是否被正确扫描,并且Service是否有正确的@Component或@Service注解。 如果以上步骤都正确无误,但仍然无法正确注入Service属性,请检查是否有其他配置或代码问题导致注入失败。可以尝试在测试中手动创建Service实例,并将其赋值给属性,以验证是否可以正常工作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用 @Autowired注解注入service后调用接口为null](https://blog.csdn.net/weixin_45589505/article/details/126939438)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [service注入null 部分注入成功部分注入失败](https://blog.csdn.net/TT_QY/article/details/120955408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SpringBoot在Test测试或自定义中通过@Autowired注入null](https://blog.csdn.net/qq_40583885/article/details/106382726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值