Intellij에서 간단하게 beanConfiguration.xml 파일을 생성하고 테스트를 위해서 실행을 하려는 도중 beanConfiguration.xml 파일이 위치한 디렉토리를 classpath:로 인식시키는 방법을 찾게 되었습니다. 운이 좋게 짧은 시간의 삽질을 통해 방법을 알아냈습니다.
1. ClassPath란?
ClassPath란 "자바 가상머신이 프로그램을 실행할때 Class파일을 찾는데 기준이 되는 경로"를 의미합니다. Classpath를 지정하지 않는다면, 자바가상머신이 위치한 디렉토리에서만 클래스들을 찾게 됩니다.
spring 에서는 이 classpath를 통해서 필요한 resource를 가져와 사용하게됩니다.
2. Intellij에서 새로 생성한 디렉토리를 ClassPath 에 추가하기
2.1 Bean Class 생성
우선 간단히 Bean으로 등록할 Class를 생성했습니다. 기능은 내부의 필드로 가지고 있는 String 값을 리턴해주는 기능밖에 없습니다.
2.2 BeanConfiguration xml 파일 생성
webapp/WEB-INF 하위에 configuration 파일들이 담길 spring 디렉토리를 하나 생성한 후 di.xml(Configuration)파일을 생성한 뒤 방금 생성한 Student class를 등록했습니다.
2.3 Classpath에 spring 디렉토리 추가
방금 생성한 WEB-INF/spring디렉토리를 classpath에 추가하기 위해 해당 디렉토리를 클릭한 뒤 상단의 Resources를 클릭하고 적용합니다.
2.4 Classpath의 xml을 가져와 ApplicationContext를 설정
테스트를 위해 ApplicationContext(IoC Container)를 생성합니다. 이때 구현체로는 ClassPath의 xml을 가져오기위해 ClassPathXmlApplicationContext를 사용합니다.
괄호 안에는 classpath:di.xml을 입력합니다. 이렇게 한다면 우리가 등록한 classpath에서 해당 파일을 검색하여 resource로 가져와 ClassPathXmlApplicationContext에서 알맞은 처리를 하게됩니다.
2.5 결과
'FrameWork > Spring' 카테고리의 다른 글
| Spring - AOP를 이용해 도메인과 Mobile Push 알림 기능을 분리하자 (0) | 2020.06.30 |
|---|---|
| Spring - IoC 컨테이너의 기능 - 7 (Resource 추상화 - ResourceLoader) (0) | 2019.05.03 |
| Spring - Lombok 이란?, Intellij Lombok 설정방법 (2) | 2019.05.01 |
| Spring - IoC 컨테이너의 기능 - 6 (DataBinding 추상화, Converter, Formatter 란?) (0) | 2019.04.16 |
| Spring - IoC 컨테이너의 기능 - 5 (객체의 값 검증 Validation, Errors) (2) | 2019.04.14 |