You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中Autowired注入返回空指针异常的排查与解决

问题根源与修复方案

为什么会出现NullPointerException?

你在main方法里直接通过new DestClass()创建了DestClass的实例,这个对象没有被Spring容器管理。Spring的依赖注入(@Autowired)只对容器内的Bean生效,所以testWired成员变量根本没被注入,自然是null,调用它的方法就会抛出空指针异常。

正确的修复方式

你需要从Spring容器中获取DestClass的Bean实例,而不是自己手动new。修改后的启动类代码如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class SpringAutoWApplication {
    public static void main(String[] args) {
        // 启动Spring应用并获取容器上下文
        ConfigurableApplicationContext context = SpringApplication.run(SpringAutoWApplication.class, args);
        // 从容器中获取DestClass的Bean实例
        DestClass dc = context.getBean(DestClass.class);
        dc.showTestWired();
    }
}

额外小提示

  • 原来的@ComponentScan注解可以去掉,因为@SpringBootApplication已经包含了@ComponentScan的功能,会自动扫描当前包及其子包下的@Component标注类。
  • 要确保DestClass和TestWired类都在SpringAutoWApplication所在包或者其子包下,这样Spring才能扫描到它们并注册为容器内的Bean。

内容的提问来源于stack exchange,提问作者Joe G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:09:08