스프링에서 어떻게 Resource를 다루는지 알아보자
자바의 URL 클래스는 여러 Resource를 다루기에는 너무 기능이 부족하다.
리소스가 뭐냐
public interface Resource extends InputStreamSource {
boolean exists();
boolean isReadable();
boolean isOpen();
boolean isFile();
URL getURL() throws IOException;
URI getURI() throws IOException;
File getFile() throws IOException;
ReadableByteChannel readableChannel() throws IOException;
long contentLength() throws IOException;
long lastModified() throws IOException;
Resource createRelative(String relativePath) throws IOException;
String getFilename();
String getDescription();
}
public interface InputStreamSource {
InputStream getInputStream() throws IOException;
}
리소스의 구현은 읽기, 쓰기(WritableResource
) 등의 작업을 할 때 쓸 수 있다.
UrlResource
ClassPathResource
FileSystemResource
PathResource