关于 @Resource 注入为 null 的问题

如下图,同样的包下的其他 Controller 累都可以注入,只有这个 Controller 类不能注入,并且显示 null ,当然测试这个函数时,也就会出现我们最害怕的 NullPointerException 了。

注入异常

尝试过的解决方案

  1. 首先将 Maven 进行 Clean ,让后重新 Compile ,再次启动 Spring Boot 。发现还是显示 NullPointerException 。❌
  2. 检查了一下 Config 配置类,检查了一遍发现也没有缺少 @Configuration ,也没有写错 @Bean ,也没有发现任何编写错误。❌
  3. 网上有些说 @ComponentScan 注解里面没有包含这个目录,也排除❌。因为目录下的其他 Controller 都可以正常注入。

作者的解决方案

如果上面的方案你尝试过了,可以试试以下的方法。

我重新将这个类的所有 import 了的包都删除,然后重新导入了,再次启动 SpringBoot ,发现没有出现 NullPointerException 了,成功解决了。✔️

猜想: 之前更新了一个自己写的 SDK ,并且重新 Install 过了。然后我在这个项目里进行使用了,没有重新编译过 Maven ,或者重新编译过了,但是缓存还在,这个类和需要注入的类相互影响到了,导致 @Resource 注解没有识别出来。

最后附上 AI 的解决方案

类中的依赖注入问题可能由以下原因导致:

  1. 类加载顺序问题

    • Spring 在启动时的类加载顺序可能导致某些 Bean 未正确注入。重新导入包后,Spring 重新扫描和加载类,解决了问题。
  2. 类或包名冲突

    • 可能存在类名或包名冲突,导致 Spring 无法正确识别和加载组件。重新导入包可能解决了这些冲突。
  3. 依赖更新后缓存问题

    • IDE 或构建工具可能缓存了旧的依赖或类,导致未加载最新的类和配置。清除缓存或重新导入包后,最新的类和配置得以加载。
  4. 编译或构建问题

    • 依赖更新后未重新编译或构建项目,导致某些类未正确加载。重新导入包和重启应用程序确保了所有类和配置的正确编译和加载。
  5. Spring 上下文问题

    • 如果在 Spring 上下文初始化时出现问题,可能导致某些 Bean 未正确加载。重新导入包和重启应用程序可以重新加载所有的 Bean,确保它们都被正确初始化。
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值