스프링 프로젝트를 생성하면 src/main/resource
디렉토리에 리소스 파일을 저장하게 되어있다. 컴파일 대상이 되는 소스파일이 아닌 파일들을 리소스 디렉토리에 저장하여 관리한다.
프로젝트를 빌드하면 리소스 파일은 CLASS_PATH
에 위치하게 된다.
스프링 프레임워크에서는 CLASS_PATH
에 저장된 리소스 파일을 쉽게 가져올 수 있도록 해주는 ClassPathResource
클래스를 제공한다.
// ex) `src/main/resource/providers.json`에 위치한 파일을 가져오려면 다음과 같이 코드를 작성한다.
ClassPathResource resource = new ClassPathResource("providers.json");
ClassPathResource
는 스프링 프레임워크가 제공하는 클래스로, 리소스에 대한 파일 이름, File 객체, URL, URI등 리소스와 관련된 정보를 제공한다.
resource.getFile(); // 파일 객체
resource.getFilename(); // 파일 이름
resource.getInputStream(); // InputStream 객체
resource.getPath(); // 파일 경로
resource.getURL(); // URL 객체
resource.getURI(); // URI 객체
가져온 리소스 파일의 내용은 Paths
를 사용하여 쉽게 읽을 수 있다.
ClassPathResource resource = new ClassPathResource("providers.json");
try {
Path path = Paths.get(resource.getURI());
List<String> content = Files.readAllLines(path);
content.forEach(System.out::println);
} catch (Exception e) {
log.error(e);
}
덕분에 좋은 내용 잘 보고 갑니다.
정말 감사합니다.