리소스를 읽어오는 기능을 제공하는 인터페이스로, ApplicationContext는 ResourcLoader를 상속받고 있기 때문에 ApplicationContext 객체를 통해 리소스를 읽어오는 로딩 기능을 사양할 수 있다.
@Component
public class AppRunner implements ApplicationRunner {
@Autowired
ResourceLoader resourceLoader;
public void run(ApplicationArguments args) throws Exception {
Resource resource = resourceLoader.getResource("classpath:text.txt");
System.out.println(resource.exists());
}
}
리소스 로딩을 하기 위해서는 getResource 메서드를 사용해서 경로를 입력해줘야 한다.
text.txt가 파일이 없는 상태라면 false를 반환한다.
추가적으로, 위의 파일 경로를 보면 resources 폴더 밑에 있는 파일들은 프로젝트가 빌드가되면서 tartget/classes 디렉토리 하위에 생성 된다. 이 위치가 바로 위의 코드에서 명시한 "classpath:"의 위치의 시작점이다. 그래서 역시 직접 생성한 text.txt 파일도 해당 위치에 생성이 될 것이다.
위와 같이 text.txt 파일을 만들고 경로를 읽고 내용을 출력하도록 할 수 있다.