Whiteship's Note

'ClassPathResource'에 해당되는 글 1건

  1. 2007.03.06 FileSystemResource vs ClassPathResource (2)

FileSystemResource vs ClassPathResource

Spring/Chapter 3 : 2007.03.06 00:40


FileSystemResource경로가 프로젝트 최상위 폴더 부터 시작하고 ClassPathResource는 자원의 경로를 패키지로 구분합니다. 따라서 아무것도 안쓰면 default 패키지에 있는 것으로 인식합니다.

public class MemberBeanTest {
    @Test
    public void createBean(){
        Resource resource = new FileSystemResource("beanConfiguration.xml");
        BeanFactory bf = new XmlBeanFactory(resource);
        assertNotNull(bf.getBean("member"));
    }
}

이렇게 FileSystemResource를 사용하여 설정 파일의 위치를 나타낼 경우 저 파일은 아래 그림과 같이 프로젝트 최상위 폴더에 있어야 합니다.
사용자 삽입 이미지

public class MemberBeanTest {
    @Test
    public void createBean(){
        Resource resource = new ClassPathResource("beanConfiguration.xml");
        BeanFactory bf = new XmlBeanFactory(resource);
        assertNotNull(bf.getBean("member"));
    }
}

이렇게 코드를 바꾼뒤에 테스트를 실행하면 BeanDefinitionStoreException이 발생합니다. 이 Exception은 bean 설정 파일을 못찾거나 설정 파일이 잘 못 됐을 때 발생하는 에러 입니다.
사용자 삽입 이미지
위 처럼 설정 파일의 위치를 소프 폴더로 옮겨 놓으면 됩니다.

사용자 삽입 이미지
이번에는 conf 라는 디렉토리 밑으로 설정 파일을 옮겼습니다. 도저히 패키지 명을 사용해서 접근할 방법은.. 모르겠네요; 없지 않나요.ㅋ;  이때는 아래 처럼 FileSystemResource의 생성자 인자로 쩜 하나를 사용해서 상대 경로로 찾아가게 할 수 있습니다.
public class MemberBeanTest {
    @Test
    public void createBean(){
        Resource resource = new FileSystemResource("./conf/beanConfiguration.xml");
        BeanFactory bf = new XmlBeanFactory(resource);
        assertNotNull(bf.getBean("member"));
    }
}


'Spring > Chapter 3' 카테고리의 다른 글

idref 엘리먼트  (0) 2007.03.08
Constructor Injection 할 때 인자 구분  (0) 2007.03.08
Setter Injection & Constructor Injection  (0) 2007.03.08
3.3. Dependencies  (0) 2007.03.08
Bean 생성하기  (0) 2007.03.07
복잡한 Alias  (0) 2007.03.07
Aliasing Beans  (0) 2007.03.07
id, name and BeanDefinitionName  (0) 2007.03.06
FileSystemResource vs ClassPathResource  (2) 2007.03.06
3.2. Basics - containers and beans  (0) 2007.03.05
BeanFactory와 ApplicationContext 인터페이스  (0) 2007.03.05
top