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

为何@Autowired字段会出现NullPointerException空指针异常?

问题描述

你可能以为我是通过new创建对象才引发这个错误,但事实并非如此。我已制作出最简复现示例。

报错信息

java.lang.NullPointerException: Cannot invoke "com.example.demo.Subject.getText()" because "this.subject" is null
at com.example.demo.SearchBase.runTest(SearchBase.java:16) ~[classes/:na]

其中subject成员标注了@Autowired,且包含该成员的类并未通过new创建——整个项目里找不到任何new关键字。

我怀疑问题出在RestController的@RequestBody SearchTest object这一行:这里自动创建的SearchTest实例似乎不在Spring上下文范围内,但我还没找到解决方案,而我必须通过@RequestBody将请求转换为对象。

相关代码

@RestController
@RequestMapping("/api")
public class TestRestController {
    private final TestService service;

    @Autowired
    public TestRestController(TestService theService) {service = theService;}

    @PostMapping("/test")
    public String test(@RequestBody SearchTest object) {
        return service.test(object);
    }
}

测试方式:通过POSTMAN访问http://localhost:8080/api/test进行测试。

后续补充

  • POST请求的输入参数为:{"page":1}
  • 我之前误以为可以对JSON中不存在的额外属性使用@Autowired注入……我不知道为什么无法实现,但显然这就是问题的根源。
  • 核心疑问:为什么在这个场景下无法使用@Autowired注入?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:52:08