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

Spring Boot中Post、Get请求返回空响应问题排查求助

排查Spring Boot接口空响应问题

1. 确认Lombok注解是否生效

你的Product类使用了@Data注解,但如果Lombok未正确配置,不会自动生成getter/setter方法,Spring MVC序列化对象时无法读取属性,就会返回{}空响应。

验证与解决:

  • 检查IDE是否安装Lombok插件(IntelliJ IDEA需在Plugins市场安装,Eclipse同理)。
  • 确认pom.xml/build.gradle中Lombok依赖正确引入:
    <!-- Maven依赖示例 -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    
  • 编译项目后查看Product的class文件,确认是否生成了getter/setter方法,若未生成则重启IDE重新编译。

2. 修正主键生成策略

@GeneratedValue未指定策略时,MySQL环境下默认策略可能不生效,导致数据无法正常插入数据库,进而出现Get请求返回空列表、Post请求返回空对象的情况。

修改Product类的id字段:

import javax.persistence.GenerationType;

// ...其他注解
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) // 指定MySQL自增策略
private int id;

3. 检查数据库连接有效性

确认MySQL服务正常运行,test数据库已创建,application.properties中的用户名、密码、端口无误:

  • 查看项目启动日志,排查是否有数据库连接失败的报错。
  • 用MySQL客户端手动连接jdbc:mysql://localhost:3306/test,验证账号密码能否正常访问。
  • 检查spring.jpa.hibernate.ddl-auto=create是否生效:启动项目后查看test库中是否生成了PRODUCT_TBL表,未生成则说明数据库连接配置有误。

4. 规范Post请求格式

发送/addProduct请求时需满足:

  • 请求头Content-Type设置为application/json。
  • 请求体字段名与Product类属性完全一致(大小写敏感),示例请求体:
    {
        "name": "测试商品",
        "quantity": 10,
        "price": 99.9
    }
    

字段名错误会导致Spring无法绑定参数,保存的对象属性为空,响应自然为空。

5. 验证数据保存状态

在ProductService的saveProduct方法中添加打印逻辑,确认数据是否真的被正确保存:

public Product saveProduct(Product product) {
    Product saved = repository.save(product);
    System.out.println("保存后的商品:" + saved);
    return saved;
}

如果打印的对象属性为空,说明参数绑定有问题;如果打印正常但响应为空,回到Lombok注解生效问题排查。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:45:55