Spring Framework Resource

김봉구·2023년 3월 22일
0

Spring Framework의 Resource를 사용하여 파일 다운로드를 처리하는 예제는 다음과 같습니다.

  1. 스프링 설정 파일에서 ResourceHandler를 등록합니다.
<mvc:resources mapping="/files/**" location="/WEB-INF/files/"/>

위의 설정에서는 /files/** URL 패턴으로 요청이 오면 /WEB-INF/files/ 디렉터리에서 파일을 찾도록 설정합니다.

  1. 컨트롤러에서 Resource를 이용하여 파일 다운로드를 처리합니다.
@Controller
public class DownloadController {
    @Autowired
    private ResourceLoader resourceLoader;

    @RequestMapping(value = "/download/{fileName:.+}", method = RequestMethod.GET)
    public void download(@PathVariable("fileName") String fileName, HttpServletResponse response) throws IOException {
        Resource resource = resourceLoader.getResource("/WEB-INF/files/" + fileName);
        InputStream is = resource.getInputStream();
        IOUtils.copy(is, response.getOutputStream());
        response.flushBuffer();
    }
}

위의 예제에서는 ResourceLoader를 사용하여 파일 경로를 Resource 객체로 생성하고, InputStream을 이용하여 파일을 읽어와 HttpServletResponse 객체의 OutputStream에 복사합니다. 마지막으로 response.flushBuffer()를 호출하여 파일을 클라이언트에 전송합니다.

위의 예제에서는 IOUtils.copy 메서드를 사용하여 InputStream과 OutputStream 간의 복사를 처리하였습니다. 이 외에도 자바의 IO 클래스들을 직접 사용하여 파일 입출력을 처리할 수 있습니다.

profile
Start Over

0개의 댓글