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

Spring Boot依赖注入疑似失效:根路径接口返回错误页面

问题排查与解决

首先排除依赖注入的可能性:如果CustomerService注入失败,Spring应用启动阶段就会抛出NoSuchBeanDefinitionException,根本无法正常启动;而且你的/hi接口能正常响应,说明CustomerController已经被Spring正确加载,依赖注入没有问题。

真正的问题大概率出在**Customer类的序列化环节**:当接口返回Customer对象时,Spring需要将其序列化为JSON格式返回给客户端,但如果Customer类不满足序列化要求,会触发内部异常,最终导致请求失败,跳转到默认的/error fallback页面。

你需要检查Customer类是否满足以下条件:

  • 提供无参数构造方法(Jackson等序列化框架默认要求)
  • 所有字段都有对应的getter方法(用于读取字段值生成JSON)
  • 或者直接使用Lombok的@Data注解(自动生成无参构造、getter、setter、toString等方法,简化代码)

正确的Customer类示例(手动实现):

public class Customer {
    private String name;
    private int age;
    private String day;

    // 必须的无参构造
    public Customer() {}

    // 带参构造
    public Customer(String name, int age, String day) {
        this.name = name;
        this.age = age;
        this.day = day;
    }

    // 所有字段的getter方法
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getDay() {
        return day;
    }
}

用Lombok简化的版本:

import lombok.Data;

@Data
public class Customer {
    private String name;
    private int age;
    private String day;

    public Customer(String name, int age, String day) {
        this.name = name;
        this.age = age;
        this.day = day;
    }
}

你也可以临时修改根路径接口做验证:

@GetMapping("/")
String getCustomerInfo(){
    Customer customer = customerService.getCustomer();
    return "姓名:" + customer.getName() + ",年龄:" + customer.getAge();
}

如果修改后接口能正常返回字符串,就可以完全确认是Customer类的序列化问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:07:32