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

2024-08-27T20:38:09-qrtpwuqd.png

尝试过的解决方案

  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,确保它们都被正确初始化。

努力有时候战胜不了天分,但至少能让别人看得起你