Whiteship's Note

Resource, ResourceLoader 인터페이스 사용 예

Spring/Chapter 4 : 2007.03.21 01:18


간단한 테스트 코드를 작성해 봤습니다.

@Test public void resource(){
        Resource resource = context.getResource("resourceTest.txt");
        assertTrue(resource.exists());
    }

ApplicationContext를 ResourceLoader로 사용할 수도 있기 때문에 getResource를 통해서 Resource객체를 받을 수 있습니다.

사용자 삽입 이미지
resourceTest.txt 파일의 위치가 위 와 같을 때.. 위의 테스트 코드는 빨간불이 들어옵니다. 대시 file: 이라는 prefix를 붙여 주면 녹색 불이 들어옵니다.

    @Test public void resource(){
        Resource resource = context.getResource("file:resourceTest.txt");
        assertTrue(resource.exists());
    }


getResource의 인자로 넘기는 문자열 값에 붙일 수 있는 prefix에는 다음과 같은 것들이 있습니다.

PrefixExampleExplanation

classpath:

classpath:com/myapp/config.xml

Loaded from the classpath.

file:

file:/data/config.xml

Loaded as a URL, from the filesystem. [a]

http:

http://myserver/logo.png

Loaded as a URL.

(none)

/data/config.xml

Depends on the underlying ApplicationContext.


아무것도 안붙인 상태에서 에러가 발생한 이유는 현재 사용중인 ApplicationContext가 ClassPathXmlApplicationContext 이녀석이기 때문에 classpath: 를 붙인 것 처럼 동작했기 때문입니다.

top

Write a comment.