I have created a Spring Boot 2 demo application with the Spring Initializr and added the controller below:
@Controller
@RequestMapping("/demo")
public class UploadController {
    private final static Logger LOG = LoggerFactory.getLogger(UploadController.class);
    @PostMapping("/upload")
    public ResponseEntity<String> uploadFile(
        @RequestParam("metadata") MultipartFile metadata,
        @RequestParam("payload") MultipartFile payload) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        Map metadataMap = mapper.readValue(metadata.getInputStream(), Map.class);
        LOG.info("Received call to upload file {}", metadataMap.get("filename"));
        LOG.info("File size: {}", payload.getBytes().length);
        LOG.info("File {} successfully uploaded", metadataMap.get("filename"));
        return ResponseEntity.ok().build();
    }
}  
I then added an application.yaml file containing this configuration:
    spring:
      servlet:
        multipart:
          max-file-size: 2000000MB
          max-request-size: 2000000MB  
          resolve-lazily: true
My goal is to have the controller parse and log the metadata file before it starts reading the payload file, but the resolve-lazily setting seems to be ignored by Boot: the code inside the controller won't be executed until the whole body is read.
I use the command below to test the controller:
curl -F metadata=@metadata.json -F payload=@payload.bin http://localhost:8080/demo/upload
Is there anything wrong with my code/configuration? Am I getting the meaning of the setting right?