Spring引导MultipartFile方法

Alm*_*zak 1 java spring-boot

在 Spring Boot 中,我们用来MultipartFile将文件从客户端发送到服务器。以下是如何使用它的示例:

@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String uploadFile(@RequestParam("file") MultipartFile uploadfile) {
    System.out.println("Name: " + uploadfile.getName());
    System.out.println("");
    return "Done";
}
Run Code Online (Sandbox Code Playgroud)

我知道这MultipartFile是一个接口,它使其所有成员(即getName)抽象。我不明白的是,如果我不自己创建一个实现,我该如何使用这个接口?

Ale*_*hin 5

如果您查看 Spring 源代码,您会发现CommonsMultipartFile,它实现了诸如getName()

当您声明想要接收 时MultipartFile,您实际上并不关心它在幕后是如何实现的。你只关心文件。Spring框架将决定为您提供哪种实现。

其他有趣的实现是MockMultipartFile,它可以在测试期间使用。同样,由于它实现了相同的接口,因此您不需要以任何方式更改您的方法。

由于它是一个接口,因此需要有人提供实现。在这种情况下,Spring 在运行时提供它。