Spring Bootで非同期にファイルをアップロードする方法は何ですか?

Spring Bootで非同期ファイルのアップロードを実装するには、@Asyncアノテーションを使用することができます。以下に、簡単なサンプルコードが示されています。

  1. 最初に、ファイルのアップロードリクエストを処理するためのコントローラーを作成してください。
@RestController
public class FileUploadController {

    @Autowired
    private FileStorageService fileStorageService;

    @PostMapping("/upload")
    public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
        fileStorageService.uploadFile(file);
        return ResponseEntity.ok("File uploaded successfully!");
    }
}
  1. その後、ファイルアップロードの処理を行うためのサービスを作成します。
@Service
public class FileStorageService {

    @Async
    public void uploadFile(MultipartFile file) {
        // 上传文件的逻辑
        // 这里可以调用其他Service或者使用Spring提供的ResourceLoader来保存文件
    }
}
  1. application.propertiesにスレッドプールを設定する:
spring.task.execution.pool.core-size=5
spring.task.execution.pool.max-size=20
spring.task.execution.pool.queue-capacity=100

上述の例では、ファイルのアップロード要求が到着した際に、uploadFileメソッドは非同期で実行され、メインスレッドがブロックされることはありません。これにより、システムの並行処理能力が向上します。

bannerAds