在Spring Boot中實現異步上傳文件可以通過使用@Async
注解實現。下面是一個簡單的示例代碼:
@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!");
}
}
@Service
public class FileStorageService {
@Async
public void uploadFile(MultipartFile file) {
// 上傳文件的邏輯
// 這里可以調用其他Service或者使用Spring提供的ResourceLoader來保存文件
}
}
spring.task.execution.pool.core-size=5
spring.task.execution.pool.max-size=20
spring.task.execution.pool.queue-capacity=100
在上面的示例中,當文件上傳請求到達時,uploadFile
方法會被異步執行,而不會阻塞主線程。這樣可以提高系統的并發處理能力。