通过 Spring 的 ResourceLoader 接口将文件作为静态资源返回给客户端。怎么使用
时间: 2023-02-08 13:02:09 浏览: 90
可以使用 Spring MVC 的 @ResponseBody 注解将文件作为静态资源返回给客户端。在控制器方法上使用该注解并使用 ResourceLoader 接口获取文件即可。
代码示例:
```java
@Controller
public class FileController {
private final ResourceLoader resourceLoader;
@Autowired
public FileController(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
@GetMapping("/file")
@ResponseBody
public ResponseEntity<Resource> getFile() {
try {
Resource file = resourceLoader.getResource("classpath:file.txt");
return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename=\"" + file.getFilename() + "\"").body(file);
} catch (Exception e) {
return ResponseEntity.notFound().build();
}
}
}
```
上面的例子中,我们在控制器的 getFile 方法中使用 resourceLoader.getResource("classpath:file.txt") 来获取文件。使用 @ResponseBody 注解将文件作为响应体返回给客户端。
阅读全文