[스프링 프레임워크 핵심기술] ResourceLoader

ResourceLoader

리소스를 읽어오는 기능을 제공하는 인터페이스로, ApplicationContext는 ResourcLoader를 상속받고 있기 때문에 ApplicationContext 객체를 통해 리소스를 읽어오는 로딩 기능을 사양할 수 있다.

  • ApplicationContext extends ResourceLoader

리소스 읽어오기

@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 파일을 만들고 경로를 읽고 내용을 출력하도록 할 수 있다.

좋은 웹페이지 즐겨찾기