Java 如何处理需要在Spring boot中发送JSON和多部分/表单数据的情况

Java 如何处理需要在Spring boot中发送JSON和多部分/表单数据的情况,java,spring,http,Java,Spring,Http,我想知道一个使用Spring在一篇文章中接收图像和简单数据的简单解决方案。我是Java的初学者,所以我想知道简单的方法。我使用过几个后端框架,在所有这些框架中都遇到了这个问题 我有以下问题: 我收到的是这样的多部分/表单数据 public CasaVenda storeCasaVendaOld(@RequestParam("dormitorios") Integer dormitorios, @RequestParam("preco") Double preco, @RequestPa

我想知道一个使用Spring在一篇文章中接收图像和简单数据的简单解决方案。我是Java的初学者,所以我想知道简单的方法。我使用过几个后端框架,在所有这些框架中都遇到了这个问题

我有以下问题:

我收到的是这样的多部分/表单数据

   public CasaVenda storeCasaVendaOld(@RequestParam("dormitorios")  Integer dormitorios, @RequestParam("preco")  Double preco, @RequestParam("foto_1")   MultipartFile foto_1){
我收到一些数字和一张图片。这是初学者实现的典型第一次尝试。验证需要在控制器中编写代码,并且我必须接收比这里描述的多得多的参数,因此这是一个糟糕的实现

我想买个模特儿

public CasaVenda storeCasaVenda(@Valid @RequestBody CasaVenda casa)

现在我可以使用注释等进行验证。问题出在文件上。是否有一个简单的解决方案可以在一个post请求中接收文件,或者我应该分割整个数据和文件的分割过程?我的意思是,我可以将资源创建过程分为两个步骤,首先输入总体数据,然后包括照片。

定义对象非常容易:

public class MyObject {
   private Integer dormitorios;
   private Double preco;
   ...
   getters/setters/constructors/etc.
   ... 
  // I'm not sure whether you can place a MultipartFile here as well to process image, 
  // however it doesn't make sense to validate it anyway 
}

然后您可以在控制器中使用此对象,它将通过spring自动将所有查询参数映射到对象的字段:


public CasaVenda storeCasaVendaOld(MyObject myObject) {
}


现在,您可以在MyObject中放置验证注释,它将被验证,只是不要在对象之前使用
@RequestParam
注释…

我的主要问题是验证。我想利用春季验证的机会。谢谢你挽救了我的时间!